Package com.britesnow.snow.web.param.resolver

Source Code of com.britesnow.snow.web.param.resolver.SystemWebParamResolvers

package com.britesnow.snow.web.param.resolver;

import java.util.Map;

import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import com.britesnow.snow.util.AnnotationMap;
import com.britesnow.snow.util.ObjectUtil;
import com.britesnow.snow.web.RequestContext;
import com.britesnow.snow.web.param.annotation.WebModel;
import com.britesnow.snow.web.param.annotation.WebParam;
import com.britesnow.snow.web.param.annotation.WebPath;
import com.britesnow.snow.web.param.annotation.WebUser;
import com.britesnow.snow.web.param.resolver.annotation.WebParamResolver;

@Singleton
public class SystemWebParamResolvers {

    // --------- Primary Type Resolvers --------- //
    @WebParamResolver
    public Long resolveLong(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        String id = rc.getParam(webParam.value());
        return ObjectUtil.getValue(id, Long.class, null);
    }

    @WebParamResolver
    public Integer resolveInteger(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        String id = rc.getParam(webParam.value());
        return ObjectUtil.getValue(id, Integer.class, null);
    }

    @WebParamResolver
    public Double resolveDouble(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        String id = rc.getParam(webParam.value());
        return ObjectUtil.getValue(id, Double.class, null);
    }

    @WebParamResolver
    public String resolveString(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        return rc.getParam(webParam.value());
    }
   
    @WebParamResolver
    public Boolean resolveBoolean(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        String val = rc.getParam(webParam.value());
        return ObjectUtil.getValue(val,Boolean.class,null);
    }
   
    @WebParamResolver
    public Enum resolveEnum(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        String val = rc.getParam(webParam.value());
        return (Enum)ObjectUtil.getValue(val, paramType, null);
    }
    // --------- /Primary Type Resolvers --------- //

    @WebParamResolver
    public Map resolveMap(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        return rc.getParamMap(webParam.value());
    }
   
    @WebParamResolver
    public FileItem resolveFileItem(AnnotationMap annotationMap, Class paramType, RequestContext rc) {
        WebParam webParam = annotationMap.get(WebParam.class);
        return rc.getParamAs(webParam.value(), FileItem.class);
    }
   
    @WebParamResolver(annotatedWith=WebUser.class)
    public Object resolveUser(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        if (rc.getAuthToken() != null) {
            // TODO: probly need to check that the paramType match the getUser
            return rc.getAuthToken().getUser();
        }else{
            return null;
        }
    }

    @WebParamResolver(annotatedWith=WebModel.class)
    public Map resolveWebModel(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        return rc.getWebModel();
    }
   
   
   
    @WebParamResolver(annotatedWith=WebPath.class)
    public Object resolveWebpath(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        WebPath webPath = annotationMap.get(WebPath.class);
        Object value;
        //if the index has been set, then, return the single Path and convert to the appropriate type.
        if (webPath.value() > -1) {
            value = rc.getResourcePathAt(webPath.value(), paramType, null);
        }
        //otherwise, return the full path
        else {
            value = rc.getResourcePath();
        }       
        return value;
    }
   
    @WebParamResolver
    public RequestContext resolveRequestContext(AnnotationMap annotationMap, Class paramType, RequestContext rc){
        return rc;
    }

    // --------- Servlet Resolvers --------- //
    @WebParamResolver
    public HttpServletRequest resolveHttpServletRequest(AnnotationMap annotationMap, Class paramType,
                            RequestContext rc) {
        return rc.getReq();
    }

    @WebParamResolver
    public HttpServletResponse resolveHttpServletResponse(AnnotationMap annotationMap, Class paramType,
                            RequestContext rc) {
        return rc.getRes();
    }

    @WebParamResolver
    public ServletContext resolveServletContext(AnnotationMap annotationMap, Class paramType,
                            RequestContext rc) {
        return rc.getServletContext();
    }
    // --------- Servlet Resolvers --------- //

}
TOP

Related Classes of com.britesnow.snow.web.param.resolver.SystemWebParamResolvers

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.