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/15 16:50:58 UTC
svn commit: r1103410 - in
/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder:
LinkedRuleBuilder.java ObjectParamBuilder.java
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