package org.jtwig.property.strategy.method.finder;
import com.google.common.base.Optional;
import org.apache.commons.lang3.StringUtils;
import org.jtwig.reflection.model.java.JavaClass;
import org.jtwig.reflection.model.java.JavaMethod;
import java.util.List;
public class PrefixedMethodNamePropertyMethodFinder implements PropertyMethodFinder {
private final String prefix;
public PrefixedMethodNamePropertyMethodFinder(String prefix) {
this.prefix = prefix;
}
@Override
public Optional<JavaMethod> find(JavaClass type, String identifier, List<Object> arguments) {
if (arguments.isEmpty()) return type.method(prefix(identifier)).getMethod();
return Optional.absent();
}
private String prefix(String identifier) {
return prefix + StringUtils.capitalize(identifier);
}
}