package org.tynamo.descriptor.factories; import org.tynamo.descriptor.IMethodDescriptor; import org.tynamo.descriptor.TynamoMethodDescriptorImpl; import org.tynamo.util.Utils; import java.beans.BeanInfo; import java.beans.MethodDescriptor; import java.util.ArrayList; import java.util.Collection; public class MethodDescriptorFactoryImpl implements MethodDescriptorFactory { private final Collection<String> methodExcludes; public MethodDescriptorFactoryImpl(Collection<String> methodExcludes) { this.methodExcludes = methodExcludes; } public ArrayList<IMethodDescriptor> buildMethodDescriptors(Class type, BeanInfo beanInfo) { ArrayList<IMethodDescriptor> result = new ArrayList<IMethodDescriptor>(); for (MethodDescriptor beanMethodDescriptor : beanInfo.getMethodDescriptors()) { if (!Utils.isExcluded(beanMethodDescriptor.getMethod().getName(), methodExcludes)) { TynamoMethodDescriptorImpl methodDescriptor = new TynamoMethodDescriptorImpl(type, beanMethodDescriptor.getMethod().getName(), beanMethodDescriptor.getMethod().getReturnType(), beanMethodDescriptor.getMethod().getParameterTypes()); // methodDescriptor.setDisplayName(Utils.unCamelCase(beanMethodDescriptor.getDisplayName())); result.add(methodDescriptor); } } return result; } }