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

cloud.agileframework.mvc.param.AgileParam Maven / Gradle / Ivy

package cloud.agileframework.mvc.param;

import cloud.agileframework.common.util.clazz.TypeReference;
import cloud.agileframework.spring.util.RequestWrapper;
import cloud.agileframework.spring.util.ServletUtil;
import com.google.common.collect.Maps;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @author 佟盟
 * 日期 2020/6/1 14:20
 * 描述 参数解析器
 * @version 1.0
 * @since 1.0
 */
public final class AgileParam {

    private AgileParam() {
    }

    public static Map getInParam() {
        RequestWrapper wrapper = getRequestWrapper();
        return Maps.newHashMap(wrapper.getInParam());
    }

    /**
     * 取当前的请求
     *
     * @return 当前的包装后的请求
     */
    private static RequestWrapper getRequestWrapper() {
        final HttpServletRequest currentRequest = ServletUtil.getCurrentRequest();
        return RequestWrapper.extract(currentRequest);
    }

    public static boolean containsKey(String key) {
        return getRequestWrapper().containsKey(key);
    }

    /**
     * 服务中调用该方法获取入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static Object getInParam(String key) {
        return getRequestWrapper().getInParam(key);
    }


    /**
     * 服务中调用该方法获取映射对象
     *
     * @param clazz 参数映射类型
     * @return 入参映射对象
     */
    public static  T getInParam(Class clazz) {
        return getRequestWrapper().getInParam(clazz);
    }

    /**
     * 服务中调用该方法获取映射对象
     *
     * @param typeReference 参数映射类型
     * @return 入参映射对象
     */
    public static  T getInParam(TypeReference typeReference) {
        return getRequestWrapper().getInParam(typeReference);
    }

    /**
     * 服务中调用该方法获取映射对象
     *
     * @param clazz  参数映射类型
     * @param prefix 筛选参数前缀
     * @return 入参映射对象
     */
    public static  T getInParamByPrefix(Class clazz, String prefix) {
        return getRequestWrapper().getInParamByPrefix(clazz, prefix);
    }

    /**
     * 服务中调用该方法获取映射对象
     *
     * @param clazz  参数映射类型
     * @param prefix 筛选参数前缀
     * @param suffix 筛选参数后缀
     * @return 入参映射对象
     */
    public static  T getInParamByPrefixAndSuffix(Class clazz, String prefix, String suffix) {
        return getRequestWrapper().getInParamByPrefixAndSuffix(clazz, prefix, suffix);
    }

    /**
     * 服务中调用该方法获取入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static String getInParam(String key, String defaultValue) {
        return getRequestWrapper().getInParam(key, defaultValue);
    }

    /**
     * 服务中调用该方法获取指定类型入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static  T getInParam(String key, Class clazz) {
        return getRequestWrapper().getInParam(key, clazz);
    }

    /**
     * 取path下入参,转换为指定泛型
     *
     * @param key       参数path
     * @param reference 泛型
     * @param        泛型
     * @return 转换后的入参
     */
    public static  T getInParam(String key, TypeReference reference) {
        return getRequestWrapper().getInParam(key, reference);
    }

    /**
     * 服务中调用该方法获取指定类型入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static  T getInParam(String key, Class clazz, T defaultValue) {
        return getRequestWrapper().getInParam(key, clazz, defaultValue);
    }

    /**
     * 获取上传文件
     *
     * @param key key值
     * @return 文件
     */
    public static MultipartFile getInParamOfFile(String key) {
        return getRequestWrapper().getInParamOfFile(key);
    }

    /**
     * 获取上传文件
     *
     * @param key key值
     * @return 文件
     */
    public static List getInParamOfFiles(String key) {
        return getRequestWrapper().getInParamOfFiles(key);
    }

    /**
     * 服务中调用该方法获取字符串数组入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static List getInParamOfArray(String key) {
        return getRequestWrapper().getInParamOfArray(key);
    }

    /**
     * 服务中调用该方法获取指定类型入参
     *
     * @param key 入参索引字符串
     * @return 入参值
     */
    public static  List getInParamOfArray(String key, Class clazz) {
        return getRequestWrapper().getInParamOfArray(key, clazz);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy