Author: simonetripodi
Date: Sun May 15 14:50:58 2011
New Revision: 1103410

URL: http://svn.apache.org/viewvc?rev=1103410&view=rev
Log:
restored the ObjectParamBuilder class
ObjectParamBuilder plugged in the Digester EDSL

Added:
    
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
   (with props)
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=1103410&r1=1103409&r2=1103410&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
 Sun May 15 14:50:58 2011
@@ -108,6 +108,16 @@ public final class LinkedRuleBuilder
     }
 
     /**
+     * Saves a parameter for use by a surrounding {@link #callMethod(String)}.
+     *
+     * @param <T> The parameter type to pass along
+     * @param paramObj The parameter to pass along
+     */
+    public <T> ObjectParamBuilder<T> objectParam(/* @Nullable */T paramObj) {
+        return addProvider( new ObjectParamBuilder<T>( keyPattern, 
namespaceURI, mainBinder, this, paramObj ) );
+    }
+
+    /**
      * Add a custom user rule in the specified pattern built by the given 
provider.
      *
      * @param <R>

Added: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java?rev=1103410&view=auto
==============================================================================
--- 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
 (added)
+++ 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
 Sun May 15 14:50:58 2011
@@ -0,0 +1,57 @@
+package org.apache.commons.digester3.binder;
+
+import org.apache.commons.digester3.ObjectParamRule;
+
+public final class ObjectParamBuilder<T>
+    extends AbstractBackToLinkedRuleBuilder<ObjectParamRule>
+{
+
+    private final T paramObj;
+
+    private int paramIndex = 0;
+
+    private String attributeName;
+
+    ObjectParamBuilder( String keyPattern, String namespaceURI, RulesBinder 
mainBinder, LinkedRuleBuilder mainBuilder,
+                        /* @Nullable */T paramObj )
+    {
+        super( keyPattern, namespaceURI, mainBinder, mainBuilder );
+        this.paramObj = paramObj;
+    }
+
+    /**
+     * The zero-relative index of the parameter we are saving.
+     *
+     * @param paramIndex The zero-relative index of the parameter we are saving
+     * @return this builder instance
+     */
+    public ObjectParamBuilder<T> ofIndex(int paramIndex) {
+        if (paramIndex < 0) {
+            this.reportError("objectParam(%s).ofIndex(int)", "negative index 
argument not allowed");
+        }
+
+        this.paramIndex = paramIndex;
+        return this;
+    }
+
+    /**
+     * The attribute which we are attempting to match.
+     *
+     * @param attributeName The attribute which we are attempting to match
+     * @return this builder instance
+     */
+    public ObjectParamBuilder<T> matchingAttribute(/* @Nullable */String 
attributeName) {
+        this.attributeName = attributeName;
+        return this;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected ObjectParamRule createRule()
+    {
+        return new ObjectParamRule( paramIndex, attributeName, paramObj );
+    }
+
+}

Propchange: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/ObjectParamBuilder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to