package org.esmerilprogramming.overtown.http.converter; import java.util.Map; import org.esmerilprogramming.overtown.http.OvertownRequest; public class ParametersConverter { private Map<String, ParameterConverter> paramConverterMap; public ParametersConverter() {} public ParametersConverter(Map<String, ParameterConverter> paramConverterMap) { super(); this.paramConverterMap = paramConverterMap; } @Deprecated public Object[] translateAllParameters(String[] parameterNames, Class<?>[] parameterTypes, OvertownRequest cloverRequest) { Object[] parameters = new Object[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; i++) { Class<?> clazz = parameterTypes[i]; parameters[i] = translateParameter(clazz, parameterNames[i], cloverRequest); } return parameters; } @Deprecated public <T> T translateParameter(Class<T> clazz, String parameterName, OvertownRequest cloverRequest) { boolean shouldTranslateParameter = cloverRequest.shouldConvertParameter(parameterName); ParameterConverter translator; if (shouldTranslateParameter) { translator = cloverRequest.getTranslator(parameterName); } else { translator = getTranslator(clazz); } return translator.translate(clazz, parameterName, cloverRequest); } public Object[] translateParameters(String[] parameterNames, Class<?>[] parameterTypes, OvertownRequest cloverRequest) { Object[] parameters = new Object[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; i++) { Class<?> clazz = parameterTypes[i]; parameters[i] = translateParam(clazz, parameterNames[i], cloverRequest); } return parameters; } protected <T> T translateParam(Class<T> clazz, String parameterName, OvertownRequest cloverRequest) { boolean shouldTranslateParameter = cloverRequest.shouldConvertParameter(parameterName); ParameterConverter translator; if (shouldTranslateParameter) { translator = cloverRequest.getTranslator(parameterName); } else { translator = paramConverterMap.get(parameterName); } return translator.translate(clazz, parameterName, cloverRequest); } @Deprecated public ParameterConverter getTranslator(Class<?> clazz) { if (PrimitiveParamConverter.isPrimitive(clazz)) return new PrimitiveParamConverter(); if (CommonsParamConverter.isCommonParam(clazz)) return new CommonsParamConverter(); else return new ModelConverter(); } }