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/job/AnalysisJobBuilder.java

    r957 r975  
    2525        private DataContextProvider _dataContextProvider; 
    2626        private List<MetaModelInputColumn> _sourceColumns = new ArrayList<MetaModelInputColumn>(); 
    27         private List<TransformerJobBuilder> _transformerJobBuilders = new ArrayList<TransformerJobBuilder>(); 
    28         private List<RowProcessingAnalyzerJobBuilder> _analyzerJobBuilders = new ArrayList<RowProcessingAnalyzerJobBuilder>(); 
     27        private List<TransformerJobBuilder<?>> _transformerJobBuilders = new ArrayList<TransformerJobBuilder<?>>(); 
     28        private List<RowProcessingAnalyzerJobBuilder<?>> _analyzerJobBuilders = new ArrayList<RowProcessingAnalyzerJobBuilder<?>>(); 
    2929        private IdGenerator transformedColumnIdGenerator = new PrefixedIdGenerator( 
    3030                        "trans"); 
     
    110110        } 
    111111 
    112         public TransformerJobBuilder addTransformer( 
    113                         Class<? extends Transformer<?>> transformerClass) { 
    114                 TransformerBeanDescriptor descriptor = _configuration 
     112        public <T extends Transformer<?>> TransformerJobBuilder<T> addTransformer( 
     113                        Class<T> transformerClass) { 
     114                TransformerBeanDescriptor<T> descriptor = _configuration 
    115115                                .getDescriptorProvider().getTransformerBeanDescriptorForClass( 
    116116                                                transformerClass); 
     
    122122        } 
    123123 
    124         public List<TransformerJobBuilder> getTransformerJobBuilders() { 
     124        public List<TransformerJobBuilder<?>> getTransformerJobBuilders() { 
    125125                return Collections.unmodifiableList(_transformerJobBuilders); 
    126126        } 
    127127 
    128         public TransformerJobBuilder addTransformer( 
    129                         TransformerBeanDescriptor descriptor) { 
    130                 TransformerJobBuilder transformerJobBuilder = new TransformerJobBuilder( 
     128        public <T extends Transformer<?>> TransformerJobBuilder<T> addTransformer( 
     129                        TransformerBeanDescriptor<T> descriptor) { 
     130                TransformerJobBuilder<T> transformerJobBuilder = new TransformerJobBuilder<T>( 
    131131                                descriptor, transformedColumnIdGenerator); 
    132132                _transformerJobBuilders.add(transformerJobBuilder); 
     
    134134        } 
    135135 
    136         public AnalysisJobBuilder removeTransformer(TransformerJobBuilder tjb) { 
     136        public AnalysisJobBuilder removeTransformer(TransformerJobBuilder<?> tjb) { 
    137137                _transformerJobBuilders.remove(tjb); 
    138138                return this; 
    139139        } 
    140140 
    141         public List<RowProcessingAnalyzerJobBuilder> getAnalyzerJobBuilders() { 
     141        public List<RowProcessingAnalyzerJobBuilder<?>> getAnalyzerJobBuilders() { 
    142142                return Collections.unmodifiableList(_analyzerJobBuilders); 
    143143        } 
    144144 
    145         public RowProcessingAnalyzerJobBuilder addAnalyzer( 
    146                         Class<? extends RowProcessingAnalyzer<?>> analyzerClass) { 
    147                 AnalyzerBeanDescriptor descriptor = _configuration 
     145        public <A extends RowProcessingAnalyzer<?>> RowProcessingAnalyzerJobBuilder<A> addAnalyzer( 
     146                        Class<A> analyzerClass) { 
     147                AnalyzerBeanDescriptor<A> descriptor = _configuration 
    148148                                .getDescriptorProvider().getAnalyzerBeanDescriptorForClass( 
    149149                                                analyzerClass); 
     
    152152                                        + analyzerClass); 
    153153                } 
    154                 RowProcessingAnalyzerJobBuilder analyzerJobBuilder = new RowProcessingAnalyzerJobBuilder( 
     154                RowProcessingAnalyzerJobBuilder<A> analyzerJobBuilder = new RowProcessingAnalyzerJobBuilder<A>( 
    155155                                descriptor); 
    156156                _analyzerJobBuilders.add(analyzerJobBuilder); 
     
    158158        } 
    159159 
    160         public AnalysisJobBuilder removeAnalyzer(RowProcessingAnalyzerJobBuilder ajb) { 
     160        public AnalysisJobBuilder removeAnalyzer( 
     161                        RowProcessingAnalyzerJobBuilder<?> ajb) { 
    161162                _analyzerJobBuilders.remove(ajb); 
    162163                return this; 
     
    178179                } 
    179180 
    180                 for (TransformerJobBuilder transformerJobBuilder : _transformerJobBuilders) { 
     181                for (TransformerJobBuilder<?> transformerJobBuilder : _transformerJobBuilders) { 
    181182                        List<MutableInputColumn<?>> outputColumns = transformerJobBuilder 
    182183                                        .getOutputColumns(); 
     
    205206                } 
    206207 
    207                 for (TransformerJobBuilder tjb : _transformerJobBuilders) { 
     208                for (TransformerJobBuilder<?> tjb : _transformerJobBuilders) { 
    208209                        if (!tjb.isConfigured()) { 
    209210                                return false; 
     
    211212                } 
    212213 
    213                 for (RowProcessingAnalyzerJobBuilder ajb : _analyzerJobBuilders) { 
     214                for (RowProcessingAnalyzerJobBuilder<?> ajb : _analyzerJobBuilders) { 
    214215                        if (!ajb.isConfigured()) { 
    215216                                return false; 
     
    227228 
    228229                Collection<TransformerJob> transformerJobs = new LinkedList<TransformerJob>(); 
    229                 for (TransformerJobBuilder tjb : _transformerJobBuilders) { 
     230                for (TransformerJobBuilder<?> tjb : _transformerJobBuilders) { 
    230231                        try { 
    231232                                TransformerJob transformerJob = tjb.toTransformerJob(); 
     
    239240 
    240241                Collection<AnalyzerJob> analyzerJobs = new LinkedList<AnalyzerJob>(); 
    241                 for (RowProcessingAnalyzerJobBuilder ajb : _analyzerJobBuilders) { 
     242                for (RowProcessingAnalyzerJobBuilder<?> ajb : _analyzerJobBuilders) { 
    242243                        try { 
    243244                                AnalyzerJob analyzerJob = ajb.toAnalyzerJob(); 
Note: See TracChangeset for help on using the changeset viewer.