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/ClasspathScanDescriptorProvider.java

    r971 r975  
    2525        private static final Logger logger = LoggerFactory 
    2626                        .getLogger(ClasspathScanDescriptorProvider.class); 
    27         private Map<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor> _analyzerBeanDescriptors = new HashMap<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor>(); 
    28         private Map<Class<? extends Transformer<?>>, TransformerBeanDescriptor> _transformerBeanDescriptors = new HashMap<Class<? extends Transformer<?>>, TransformerBeanDescriptor>(); 
     27        private Map<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>> _analyzerBeanDescriptors = new HashMap<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>>(); 
     28        private Map<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>> _transformerBeanDescriptors = new HashMap<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>>(); 
    2929        private Map<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor> _rendererBeanDescriptors = new HashMap<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor>(); 
    3030 
     
    7676                                        Class<? extends Analyzer<?>> analyzerClass = (Class<? extends Analyzer<?>>) visitor 
    7777                                                        .getBeanClass(); 
    78                                         AnalyzerBeanDescriptor descriptor = _analyzerBeanDescriptors 
     78                                        AnalyzerBeanDescriptor<?> descriptor = _analyzerBeanDescriptors 
    7979                                                        .get(analyzerClass); 
    8080                                        if (descriptor == null) { 
    81                                                 descriptor = new AnnotationBasedAnalyzerBeanDescriptor( 
     81                                                descriptor = AnnotationBasedAnalyzerBeanDescriptor.create( 
    8282                                                                analyzerClass); 
    8383                                                _analyzerBeanDescriptors.put(analyzerClass, descriptor); 
     
    8888                                        Class<? extends Transformer<?>> transformerClass = (Class<? extends Transformer<?>>) visitor 
    8989                                                        .getBeanClass(); 
    90                                         TransformerBeanDescriptor descriptor = _transformerBeanDescriptors 
     90                                        TransformerBeanDescriptor<?> descriptor = _transformerBeanDescriptors 
    9191                                                        .get(transformerClass); 
    9292                                        if (descriptor == null) { 
    93                                                 descriptor = new AnnotationBasedTransformerBeanDescriptor( 
     93                                                descriptor = AnnotationBasedTransformerBeanDescriptor.create( 
    9494                                                                transformerClass); 
    9595                                                _transformerBeanDescriptors.put(transformerClass, 
     
    132132 
    133133        @Override 
    134         public Collection<AnalyzerBeanDescriptor> getAnalyzerBeanDescriptors() { 
     134        public Collection<AnalyzerBeanDescriptor<?>> getAnalyzerBeanDescriptors() { 
    135135                return Collections.unmodifiableCollection(_analyzerBeanDescriptors 
    136136                                .values()); 
    137137        } 
    138138 
     139        @SuppressWarnings("unchecked") 
    139140        @Override 
    140         public AnalyzerBeanDescriptor getAnalyzerBeanDescriptorForClass( 
    141                         Class<? extends Analyzer<?>> analyzerBeanClass) { 
    142                 return _analyzerBeanDescriptors.get(analyzerBeanClass); 
     141        public <A extends Analyzer<?>> AnalyzerBeanDescriptor<A> getAnalyzerBeanDescriptorForClass( 
     142                        Class<A> analyzerBeanClass) { 
     143                return (AnalyzerBeanDescriptor<A>) _analyzerBeanDescriptors 
     144                                .get(analyzerBeanClass); 
    143145        } 
    144146 
    145147        @Override 
    146         public Collection<TransformerBeanDescriptor> getTransformerBeanDescriptors() { 
     148        public Collection<TransformerBeanDescriptor<?>> getTransformerBeanDescriptors() { 
    147149                return Collections.unmodifiableCollection(_transformerBeanDescriptors 
    148150                                .values()); 
    149151        } 
    150152 
     153        @SuppressWarnings("unchecked") 
    151154        @Override 
    152         public TransformerBeanDescriptor getTransformerBeanDescriptorForClass( 
    153                         Class<? extends Transformer<?>> transformerBeanClass) { 
    154                 return _transformerBeanDescriptors.get(transformerBeanClass); 
     155        public <T extends Transformer<?>> TransformerBeanDescriptor<T> getTransformerBeanDescriptorForClass( 
     156                        Class<T> transformerBeanClass) { 
     157                return (TransformerBeanDescriptor<T>) _transformerBeanDescriptors 
     158                                .get(transformerBeanClass); 
    155159        } 
    156160 
Note: See TracChangeset for help on using the changeset viewer.