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/05/14 17:15:41 UTC

svn commit: r1103128 - /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java

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;
+    }
+
 }