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    }