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