
com.lyncode.jtwig.functions.parameters.resolve.impl.ParameterAnnotationParameterResolver Maven / Gradle / Ivy
The newest version!
package com.lyncode.jtwig.functions.parameters.resolve.impl;
import com.google.common.base.Optional;
import com.lyncode.jtwig.functions.annotations.Parameter;
import com.lyncode.jtwig.functions.parameters.convert.DemultiplexerConverter;
import com.lyncode.jtwig.functions.parameters.input.InputParameters;
import com.lyncode.jtwig.functions.parameters.resolve.api.ParameterResolver;
import com.lyncode.jtwig.functions.reflection.JavaMethodParameter;
import org.apache.commons.lang3.ClassUtils;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import static com.google.common.base.Optional.absent;
import static com.google.common.base.Optional.of;
public class ParameterAnnotationParameterResolver implements ParameterResolver {
private final InputParameters input;
private final DemultiplexerConverter converter;
public ParameterAnnotationParameterResolver(InputParameters input, DemultiplexerConverter converter) {
this.input = input;
this.converter = converter;
}
@Override
public Optional resolve(JavaMethodParameter parameter) {
if (parameter.hasAnnotation(Parameter.class)) {
if (parameter.isVarArg()) {
// try to resolve the rest of parameters to one array
Class> componentType = parameter.type().getComponentType();
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy