Author: simonetripodi
Date: Sat May 14 15:15:41 2011
New Revision: 1103128

URL: http://svn.apache.org/viewvc?rev=1103128&view=rev
Log:
FromBinderRuleSet plugged into the LinkedRuleBuilder to register RulesProvider

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

Modified: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java?rev=1103128&r1=1103127&r2=1103128&view=diff
==============================================================================
--- 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
 (original)
+++ 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
 Sat May 14 15:15:41 2011
@@ -17,6 +17,8 @@
  */
 package org.apache.commons.digester3.binder;
 
+import org.apache.commons.digester3.Rule;
+
 /**
  * Builder invoked to bind one or more rules to a pattern.
  *
@@ -25,8 +27,33 @@ package org.apache.commons.digester3.bin
 public final class LinkedRuleBuilder
 {
 
+    private final RulesBinder mainBinder;
+
+    private final FromBinderRuleSet fromBinderRuleSet;
+
+    private final ClassLoader classLoader;
+
+    private final String keyPattern;
+
     private String namespaceURI;
 
+    LinkedRuleBuilder( final RulesBinder mainBinder, final FromBinderRuleSet 
fromBinderRuleSet,
+                       final ClassLoader classLoader, final String keyPattern )
+    {
+        this.mainBinder = mainBinder;
+        this.fromBinderRuleSet = fromBinderRuleSet;
+        this.classLoader = classLoader;
+        this.keyPattern = keyPattern;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public BeanPropertySetterBuilder setBeanProperty()
+    {
+        return addProvider( new BeanPropertySetterBuilder( this.keyPattern, 
this.namespaceURI, this.mainBinder, this ) );
+    }
+
     /**
      * Sets the namespace URI for the current rule pattern.
      *
@@ -48,4 +75,17 @@ public final class LinkedRuleBuilder
         return this;
     }
 
+    /**
+     * Add a provider in the data structure where storing the providers 
binding.
+     *
+     * @param <R> The rule will be created by the given provider
+     * @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, RP extends RuleProvider<R>> RP addProvider( RP 
provider )
+    {
+        fromBinderRuleSet.registerProvider( provider );
+        return provider;
+    }
+
 }


Reply via email to