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

    r971 r975  
    1212public class LazyDescriptorProvider implements DescriptorProvider { 
    1313 
    14         private Map<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor> _analyzerBeanDescriptors = new HashMap<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor>(); 
    15         private Map<Class<? extends Transformer<?>>, TransformerBeanDescriptor> _transformerBeanDescriptors = new HashMap<Class<? extends Transformer<?>>, TransformerBeanDescriptor>(); 
     14        private Map<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>> _analyzerBeanDescriptors = new HashMap<Class<? extends Analyzer<?>>, AnalyzerBeanDescriptor<?>>(); 
     15        private Map<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>> _transformerBeanDescriptors = new HashMap<Class<? extends Transformer<?>>, TransformerBeanDescriptor<?>>(); 
    1616        private Map<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor> _rendererBeanDescriptors = new HashMap<Class<? extends Renderer<?, ?>>, RendererBeanDescriptor>(); 
    1717 
     18        @SuppressWarnings("unchecked") 
    1819        @Override 
    19         public AnalyzerBeanDescriptor getAnalyzerBeanDescriptorForClass( 
    20                         Class<? extends Analyzer<?>> analyzerBeanClass) { 
    21                 AnalyzerBeanDescriptor descriptor = _analyzerBeanDescriptors 
     20        public <A extends Analyzer<?>> AnalyzerBeanDescriptor<A> getAnalyzerBeanDescriptorForClass( 
     21                        Class<A> analyzerBeanClass) { 
     22                AnalyzerBeanDescriptor<?> descriptor = _analyzerBeanDescriptors 
    2223                                .get(analyzerBeanClass); 
    2324                if (descriptor == null) { 
    24                         descriptor = new AnnotationBasedAnalyzerBeanDescriptor( 
     25                        descriptor = AnnotationBasedAnalyzerBeanDescriptor.create( 
    2526                                        analyzerBeanClass); 
    2627                        _analyzerBeanDescriptors.put(analyzerBeanClass, descriptor); 
    2728                } 
    28                 return descriptor; 
     29                return (AnalyzerBeanDescriptor<A>) descriptor; 
    2930        } 
    3031 
    3132        @Override 
    32         public Collection<AnalyzerBeanDescriptor> getAnalyzerBeanDescriptors() { 
     33        public Collection<AnalyzerBeanDescriptor<?>> getAnalyzerBeanDescriptors() { 
    3334                return Collections.unmodifiableCollection(_analyzerBeanDescriptors 
    3435                                .values()); 
     
    3637 
    3738        @Override 
    38         public Collection<TransformerBeanDescriptor> getTransformerBeanDescriptors() { 
     39        public Collection<TransformerBeanDescriptor<?>> getTransformerBeanDescriptors() { 
    3940                return Collections.unmodifiableCollection(_transformerBeanDescriptors 
    4041                                .values()); 
    4142        } 
    4243 
     44        @SuppressWarnings("unchecked") 
    4345        @Override 
    44         public TransformerBeanDescriptor getTransformerBeanDescriptorForClass( 
    45                         Class<? extends Transformer<?>> transformerBeanClass) { 
    46                 TransformerBeanDescriptor descriptor = _transformerBeanDescriptors 
     46        public <T extends Transformer<?>> TransformerBeanDescriptor<T> getTransformerBeanDescriptorForClass( 
     47                        Class<T> transformerBeanClass) { 
     48                TransformerBeanDescriptor<?> descriptor = _transformerBeanDescriptors 
    4749                                .get(transformerBeanClass); 
    4850                if (descriptor == null) { 
    49                         descriptor = new AnnotationBasedTransformerBeanDescriptor( 
     51                        descriptor = AnnotationBasedTransformerBeanDescriptor.create( 
    5052                                        transformerBeanClass); 
    5153                        _transformerBeanDescriptors.put(transformerBeanClass, descriptor); 
    5254                } 
    53                 return descriptor; 
     55                return (TransformerBeanDescriptor<T>) descriptor; 
    5456        } 
    5557 
Note: See TracChangeset for help on using the changeset viewer.