All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.britesnow.snow.web.renderer.freemarker.FreemarkerParamResolvers Maven / Gradle / Ivy

The newest version!
package com.britesnow.snow.web.renderer.freemarker;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.inject.Singleton;

import com.britesnow.snow.util.AnnotationMap;
import com.britesnow.snow.web.RequestContext;
import com.britesnow.snow.web.param.resolver.annotation.WebParamResolver;
import com.britesnow.snow.web.renderer.freemarker.annotation.FreemarkerMethodArguments;
import com.britesnow.snow.web.renderer.freemarker.annotation.FreemarkerParam;

import freemarker.core.Environment;

@Singleton
public class FreemarkerParamResolvers {
    
    @WebParamResolver(annotatedWith=FreemarkerParam.class)
    public Map resolveDirectiveParam(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        return rc.getAttributeAs(FreemarkerDirectiveProxy.FREEMARKER_DIRECTIVE_CONTEXT, FreemarkerDirectiveContext.class).paramMap;
    }
    
    @WebParamResolver(annotatedWith=FreemarkerMethodArguments.class)
    public List resolveMethodArguments(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        List values = new ArrayList();
        List freemarkerValues = rc.getAttributeAs(FreemarkerMethodProxy.FREEMARKER_METHOD_ARGUMENTS, List.class);
        for (Object freemarkerValue : freemarkerValues){
            values.add(FreemarkerUtil.getValue(freemarkerValue));
        }
        return values;
    }
    
    @WebParamResolver
    public Environment resolveEnvironment(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        return rc.getAttributeAs(FreemarkerDirectiveProxy.FREEMARKER_DIRECTIVE_CONTEXT, FreemarkerDirectiveContext.class).env;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy