001 package org.tynamo.descriptor.factories;
002
003 import org.tynamo.descriptor.IMethodDescriptor;
004 import org.tynamo.descriptor.TynamoMethodDescriptorImpl;
005 import org.tynamo.util.Utils;
006
007 import java.beans.BeanInfo;
008 import java.beans.MethodDescriptor;
009 import java.util.ArrayList;
010 import java.util.Collection;
011
012
013 public class MethodDescriptorFactoryImpl implements MethodDescriptorFactory
014 {
015
016 private final Collection<String> methodExcludes;
017
018 public MethodDescriptorFactoryImpl(Collection<String> methodExcludes)
019 {
020 this.methodExcludes = methodExcludes;
021 }
022
023
024 public ArrayList<IMethodDescriptor> buildMethodDescriptors(Class type, BeanInfo beanInfo)
025 throws Exception
026 {
027 ArrayList<IMethodDescriptor> result = new ArrayList<IMethodDescriptor>();
028 for (MethodDescriptor beanMethodDescriptor : beanInfo.getMethodDescriptors())
029 {
030 if (!Utils.isExcluded(beanMethodDescriptor.getMethod().getName(), methodExcludes))
031 {
032 TynamoMethodDescriptorImpl methodDescriptor = new TynamoMethodDescriptorImpl(type,
033 beanMethodDescriptor.getMethod().getName(), beanMethodDescriptor.getMethod().getReturnType(),
034 beanMethodDescriptor.getMethod().getParameterTypes());
035 // methodDescriptor.setDisplayName(Utils.unCamelCase(beanMethodDescriptor.getDisplayName()));
036 result.add(methodDescriptor);
037 }
038 }
039 return result;
040 }
041 }