You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/01/31 21:44:17 UTC

svn commit: r1065766 - /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java

Author: simonetripodi
Date: Mon Jan 31 20:44:16 2011
New Revision: 1065766

URL: http://svn.apache.org/viewvc?rev=1065766&view=rev
Log:
fixed generics on method to store providers
generated builders/providers have to be added in the data structure to maintain them

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java?rev=1065766&r1=1065765&r2=1065766&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java Mon Jan 31 20:44:16 2011
@@ -157,7 +157,7 @@ final class RulesBinderImpl implements R
                     addError("{forPattern(\"%s\").setTop(String)} empty 'methodName' not allowed", keyPattern);
                 }
 
-                return new AbstractParamTypeBuilder<SetTopRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
+                return this.addProvider(new AbstractParamTypeBuilder<SetTopRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
 
                     @Override
                     protected String getCalledMethodName() {
@@ -168,7 +168,7 @@ final class RulesBinderImpl implements R
                         return new SetTopRule(this.getMethodName(), this.getParamType(), this.isUseExactMatch());
                     }
 
-                };
+                });
             }
 
             /**
@@ -179,7 +179,7 @@ final class RulesBinderImpl implements R
                     addError("{forPattern(\"%s\").setRoot(String)} empty 'methodName' not allowed", keyPattern);
                 }
 
-                return new AbstractParamTypeBuilder<SetRootRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
+                return this.addProvider(new AbstractParamTypeBuilder<SetRootRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
 
                     @Override
                     protected String getCalledMethodName() {
@@ -190,7 +190,7 @@ final class RulesBinderImpl implements R
                         return new SetRootRule(this.getMethodName(), this.getParamType(), this.isUseExactMatch());
                     }
 
-                };
+                });
             }
 
             public SetPropertyBuilder setProperty(String attributePropertyName) {
@@ -201,7 +201,7 @@ final class RulesBinderImpl implements R
              * 
              */
             public SetPropertiesBuilder setProperties() {
-                return new SetPropertiesBuilder() {
+                return this.addProvider(new SetPropertiesBuilder() {
 
                     private final Map<String, String> aliases = new HashMap<String, String>();
 
@@ -230,7 +230,7 @@ final class RulesBinderImpl implements R
                         return this;
                     }
 
-                };
+                });
             }
 
             /**
@@ -241,7 +241,7 @@ final class RulesBinderImpl implements R
                     addError("{forPattern(\"%s\").setNext(String)} empty 'methodName' not allowed", keyPattern);
                 }
 
-                return new AbstractParamTypeBuilder<SetNextRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
+                return this.addProvider(new AbstractParamTypeBuilder<SetNextRule>(keyPattern, methodName, RulesBinderImpl.this, this) {
 
                     @Override
                     protected String getCalledMethodName() {
@@ -252,14 +252,14 @@ final class RulesBinderImpl implements R
                         return new SetNextRule(this.getMethodName(), this.getParamType(), this.isUseExactMatch());
                     }
 
-                };
+                });
             }
 
             /**
              * 
              */
             public NestedPropertiesBuilder setNestedProperties() {
-                return new NestedPropertiesBuilder() {
+                return this.addProvider(new NestedPropertiesBuilder() {
 
                     private final Map<String, String> elementNames = new HashMap<String, String>();
 
@@ -290,14 +290,14 @@ final class RulesBinderImpl implements R
                         return this;
                     }
 
-                };
+                });
             }
 
             /**
              * 
              */
             public BeanPropertySetterBuilder setBeanProperty() {
-                return new BeanPropertySetterBuilder() {
+                return this.addProvider(new BeanPropertySetterBuilder() {
 
                     private String propertyName;
 
@@ -314,7 +314,7 @@ final class RulesBinderImpl implements R
                         return this;
                     }
 
-                };
+                });
             }
 
             public <T> ObjectParamBuilder objectParam(T paramObj) {
@@ -329,7 +329,7 @@ final class RulesBinderImpl implements R
              * 
              */
             public ObjectCreateBuilder createObject() {
-                return new ObjectCreateBuilder() {
+                return this.addProvider(new ObjectCreateBuilder() {
 
                     private String className;
 
@@ -371,7 +371,7 @@ final class RulesBinderImpl implements R
                         return this;
                     }
 
-                };
+                });
             }
 
             public PathCallParamBuilder callParamPath() {
@@ -411,7 +411,7 @@ final class RulesBinderImpl implements R
                     addError("{forPattern(\"%s\").addRuleCreatedBy()} null rule not valid", keyPattern);
                 }
 
-                return new BackToLinkedRuleBuilder<R>() {
+                return this.addProvider(new BackToLinkedRuleBuilder<R>() {
 
                     public LinkedRuleBuilder then() {
                         return mainBuilder;
@@ -423,7 +423,7 @@ final class RulesBinderImpl implements R
                         return rule;
                     }
 
-                };
+                });
             }
 
             /**
@@ -433,7 +433,7 @@ final class RulesBinderImpl implements R
              * @param provider The provider has to be stored in the data structure
              * @return The provider itself has to be stored in the data structure
              */
-            private <R extends Rule> RuleProvider<R> addProvider(RuleProvider<R> provider) {
+            private <R extends Rule, RP extends RuleProvider<R>> RP addProvider(RP provider) {
                 if (keyPattern == null) {
                     return provider;
                 }