Author: simonetripodi Date: Tue Jan 12 09:05:59 2010 New Revision: 898263 URL: http://svn.apache.org/viewvc?rev=898263&view=rev Log: added generics on set/get providers on FromAnnotationsRuleSet class
Modified: commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/FromAnnotationsRuleSet.java Modified: commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/FromAnnotationsRuleSet.java URL: http://svn.apache.org/viewvc/commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/FromAnnotationsRuleSet.java?rev=898263&r1=898262&r2=898263&view=diff ============================================================================== --- commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/FromAnnotationsRuleSet.java (original) +++ commons/sandbox/at-digester/trunk/src/java/org/apache/commons/digester/annotations/FromAnnotationsRuleSet.java Tue Jan 12 09:05:59 2010 @@ -59,7 +59,9 @@ pattern = entry.getKey(); for (AnnotationRuleProvider<Annotation, AnnotatedElement, Rule> provider : entry.getValue()) { rule = provider.get(); - rule.setNamespaceURI(this.namespaceURI); + if (this.namespaceURI != null) { + rule.setNamespaceURI(this.namespaceURI); + } digester.addRule(pattern, rule); } } @@ -68,18 +70,21 @@ /** * Register an {...@link AnnotationRuleProvider} for a specific pattern. * - * @param pattern - * @param ruleProvider + * @param pattern the pattern has to be associated to the rule provider. + * @param ruleProvider the provider that builds the digester rule. */ - public void addRuleProvider(String pattern, AnnotationRuleProvider<Annotation, AnnotatedElement, Rule> ruleProvider) { + @SuppressWarnings("unchecked") + public void addRuleProvider(String pattern, AnnotationRuleProvider<? extends Annotation, ? extends AnnotatedElement, ? extends Rule> ruleProvider) { + List<AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>> rules; + if (this.rules.containsKey(pattern)) { - this.rules.get(pattern).add(ruleProvider); + rules = this.rules.get(pattern); } else { - List<AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>> rules = - new ArrayList<AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>>(); - rules.add(ruleProvider); + rules = new ArrayList<AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>>(); this.rules.put(pattern, rules); } + + rules.add((AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>) ruleProvider); } /** @@ -92,7 +97,7 @@ * @return an {...@link AnnotationRuleProvider} for the input pattern if found, * null otherwise. */ - public <T extends AnnotationRuleProvider<Annotation, AnnotatedElement, Rule>> T getProvider(String pattern, Class<T> providerClass) { + public <T extends AnnotationRuleProvider<? extends Annotation, ? extends AnnotatedElement, ? extends Rule>> T getProvider(String pattern, Class<T> providerClass) { if (!this.rules.containsKey(pattern)) { return null; }