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    }