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