Ignore:
Timestamp:
08/14/10 12:37:00 (22 months ago)
Author:
kasper
Message:

Made descriptors more type-safe by adding type parameter for bean type.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • AnalyzerBeans/trunk/src/main/java/org/eobjects/analyzer/descriptors/SimpleDescriptorProvider.java

    r971 r975  
    4242public class SimpleDescriptorProvider implements DescriptorProvider { 
    4343 
    44         private List<AnalyzerBeanDescriptor> _analyzerBeanDescriptors = new ArrayList<AnalyzerBeanDescriptor>(); 
    45         private List<TransformerBeanDescriptor> _transformerBeanDescriptors = new ArrayList<TransformerBeanDescriptor>(); 
     44        private List<AnalyzerBeanDescriptor<?>> _analyzerBeanDescriptors = new ArrayList<AnalyzerBeanDescriptor<?>>(); 
     45        private List<TransformerBeanDescriptor<?>> _transformerBeanDescriptors = new ArrayList<TransformerBeanDescriptor<?>>(); 
    4646        private List<RendererBeanDescriptor> _rendererBeanDescriptors = new ArrayList<RendererBeanDescriptor>(); 
    4747 
     
    5050 
    5151        public void addAnalyzerBeanDescriptor( 
    52                         AnalyzerBeanDescriptor analyzerBeanDescriptor) { 
     52                        AnalyzerBeanDescriptor<?> analyzerBeanDescriptor) { 
    5353                _analyzerBeanDescriptors.add(analyzerBeanDescriptor); 
    5454        } 
    5555 
    5656        public void addTransformerBeanDescriptor( 
    57                         TransformerBeanDescriptor transformerBeanDescriptor) { 
     57                        TransformerBeanDescriptor<?> transformerBeanDescriptor) { 
    5858                _transformerBeanDescriptors.add(transformerBeanDescriptor); 
    5959        } 
     
    6565 
    6666        @Override 
    67         public List<AnalyzerBeanDescriptor> getAnalyzerBeanDescriptors() { 
     67        public List<AnalyzerBeanDescriptor<?>> getAnalyzerBeanDescriptors() { 
    6868                return _analyzerBeanDescriptors; 
    6969        } 
    7070 
    7171        public void setAnalyzerBeanDescriptors( 
    72                         List<AnalyzerBeanDescriptor> descriptors) { 
     72                        List<AnalyzerBeanDescriptor<?>> descriptors) { 
    7373                _analyzerBeanDescriptors = descriptors; 
    7474        } 
    7575 
     76        @SuppressWarnings("unchecked") 
    7677        @Override 
    77         public AnalyzerBeanDescriptor getAnalyzerBeanDescriptorForClass( 
    78                         Class<? extends Analyzer<?>> analyzerBeanClass) { 
    79                 for (AnalyzerBeanDescriptor descriptor : _analyzerBeanDescriptors) { 
     78        public <A extends Analyzer<?>> AnalyzerBeanDescriptor<A> getAnalyzerBeanDescriptorForClass( 
     79                        Class<A> analyzerBeanClass) { 
     80                for (AnalyzerBeanDescriptor<?> descriptor : _analyzerBeanDescriptors) { 
    8081                        if (descriptor.getBeanClass() == analyzerBeanClass) { 
    81                                 return descriptor; 
     82                                return (AnalyzerBeanDescriptor<A>) descriptor; 
     83                        } 
     84                } 
     85                return null; 
     86        } 
     87 
     88        @SuppressWarnings("unchecked") 
     89        @Override 
     90        public <T extends Transformer<?>> TransformerBeanDescriptor<T> getTransformerBeanDescriptorForClass( 
     91                        Class<T> transformerBeanClass) { 
     92                for (TransformerBeanDescriptor<?> descriptor : _transformerBeanDescriptors) { 
     93                        if (descriptor.getBeanClass() == transformerBeanClass) { 
     94                                return (TransformerBeanDescriptor<T>) descriptor; 
    8295                        } 
    8396                } 
     
    8699 
    87100        @Override 
    88         public TransformerBeanDescriptor getTransformerBeanDescriptorForClass( 
    89                         Class<? extends Transformer<?>> transformerBeanClass) { 
    90                 for (TransformerBeanDescriptor descriptor : _transformerBeanDescriptors) { 
    91                         if (descriptor.getBeanClass() == transformerBeanClass) { 
    92                                 return descriptor; 
    93                         } 
    94                 } 
    95                 return null; 
    96         } 
    97  
    98         @Override 
    99         public List<TransformerBeanDescriptor> getTransformerBeanDescriptors() { 
     101        public List<TransformerBeanDescriptor<?>> getTransformerBeanDescriptors() { 
    100102                return _transformerBeanDescriptors; 
    101103        } 
    102104 
    103105        public void setTransformerBeanDescriptors( 
    104                         List<TransformerBeanDescriptor> transformerBeanDescriptors) { 
     106                        List<TransformerBeanDescriptor<?>> transformerBeanDescriptors) { 
    105107                _transformerBeanDescriptors = transformerBeanDescriptors; 
    106108        } 
     
    133135                        Class<? extends Analyzer<?>> c = (Class<? extends Analyzer<?>>) Class 
    134136                                        .forName(className); 
    135                         AnalyzerBeanDescriptor descriptor = getAnalyzerBeanDescriptorForClass(c); 
     137                        AnalyzerBeanDescriptor<?> descriptor = getAnalyzerBeanDescriptorForClass(c); 
    136138                        if (descriptor == null) { 
    137                                 addAnalyzerBeanDescriptor(new AnnotationBasedAnalyzerBeanDescriptor( 
    138                                                 c)); 
     139                                addAnalyzerBeanDescriptor(AnnotationBasedAnalyzerBeanDescriptor 
     140                                                .create(c)); 
    139141                        } 
    140142                } 
     
    147149                        Class<? extends Transformer<?>> c = (Class<? extends Transformer<?>>) Class 
    148150                                        .forName(className); 
    149                         TransformerBeanDescriptor descriptor = getTransformerBeanDescriptorForClass(c); 
     151                        TransformerBeanDescriptor<?> descriptor = getTransformerBeanDescriptorForClass(c); 
    150152                        if (descriptor == null) { 
    151                                 addTransformerBeanDescriptor(new AnnotationBasedTransformerBeanDescriptor( 
    152                                                 c)); 
     153                                addTransformerBeanDescriptor(AnnotationBasedTransformerBeanDescriptor 
     154                                                .create(c)); 
    153155                        } 
    154156                } 
Note: See TracChangeset for help on using the changeset viewer.