Return-Path:
X-Original-To: apmail-commons-commits-archive@minotaur.apache.org
Delivered-To: apmail-commons-commits-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 193495E0A
for ;
Thu, 12 May 2011 18:03:59 +0000 (UTC)
Received: (qmail 68647 invoked by uid 500); 12 May 2011 18:03:58 -0000
Delivered-To: apmail-commons-commits-archive@commons.apache.org
Received: (qmail 68547 invoked by uid 500); 12 May 2011 18:03:58 -0000
Mailing-List: contact commits-help@commons.apache.org; run by ezmlm
Precedence: bulk
List-Help:
List-Unsubscribe:
List-Post:
List-Id:
Reply-To: dev@commons.apache.org
Delivered-To: mailing list commits@commons.apache.org
Received: (qmail 68534 invoked by uid 99); 12 May 2011 18:03:58 -0000
Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136)
by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 May 2011 18:03:58 +0000
X-ASF-Spam-Status: No, hits=-2000.0 required=5.0
tests=ALL_TRUSTED
X-Spam-Check-By: apache.org
Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4)
by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 May 2011 18:03:57 +0000
Received: by eris.apache.org (Postfix, from userid 65534)
id 0132023889ED; Thu, 12 May 2011 18:03:37 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: svn commit: r1102402 [2/20] - in
/commons/sandbox/digester3/trunk/src:
main/java/org/apache/commons/digester3/
main/java/org/apache/commons/digester3/annotations/
main/java/org/apache/commons/digester3/annotations/handlers/
main/java/org/apache/commons...
Date: Thu, 12 May 2011 18:03:33 -0000
To: commits@commons.apache.org
From: simonetripodi@apache.org
X-Mailer: svnmailer-1.0.8
Message-Id: <20110512180337.0132023889ED@eris.apache.org>
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallParamRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallParamRule.java?rev=1102402&r1=1102401&r2=1102402&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallParamRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallParamRule.java Thu May 12 18:03:26 2011
@@ -16,201 +16,202 @@
* limitations under the License.
*/
-
package org.apache.commons.digester3;
-
import java.util.Stack;
import org.xml.sax.Attributes;
-
/**
- * Rule implementation that saves a parameter for use by a surrounding
- * CallMethodRule.
- *
- * This parameter may be:
+ *
+ * Rule implementation that saves a parameter for use by a surrounding CallMethodRule.
+ *
+ *
+ * This parameter may be:
*
- * - from an attribute of the current element
- * See {@link #CallParamRule(int paramIndex, String attributeName)}
- *
- from current the element body
- * See {@link #CallParamRule(int paramIndex)}
- *
- from the top object on the stack.
- * See {@link #CallParamRule(int paramIndex, boolean fromStack)}
- *
- the current path being processed (separate
Rule
).
- * See {@link PathCallParamRule}
+ * - from an attribute of the current element See {@link #CallParamRule(int paramIndex, String attributeName)}
+ *
- from current the element body See {@link #CallParamRule(int paramIndex)}
+ *
- from the top object on the stack. See {@link #CallParamRule(int paramIndex, boolean fromStack)}
+ *
- the current path being processed (separate
Rule
). See {@link PathCallParamRule}
*
*
*/
-public class CallParamRule extends Rule {
+public class CallParamRule
+ extends Rule
+{
// ----------------------------------------------------------- Constructors
/**
- * Construct a "call parameter" rule that will save the body text of this
- * element as the parameter value.
- *
- * Note that if the element is empty the an empty string is
- * passed to the target method, not null. And if automatic type conversion
- * is being applied (ie if the target function takes something other than
- * a string as a parameter) then the conversion will fail if the converter
- * class does not accept an empty string as valid input.
- *
+ * Construct a "call parameter" rule that will save the body text of this element as the parameter value.
+ *
+ * Note that if the element is empty the an empty string is passed to the target method, not null. And if
+ * automatic type conversion is being applied (ie if the target function takes something other than a string as a
+ * parameter) then the conversion will fail if the converter class does not accept an empty string as valid input.
+ *
+ *
* @param paramIndex The zero-relative parameter number
*/
- public CallParamRule(int paramIndex) {
+ public CallParamRule( int paramIndex )
+ {
- this(paramIndex, null);
+ this( paramIndex, null );
}
-
/**
- * Construct a "call parameter" rule that will save the value of the
- * specified attribute as the parameter value.
- *
+ * Construct a "call parameter" rule that will save the value of the specified attribute as the parameter value.
+ *
* @param paramIndex The zero-relative parameter number
* @param attributeName The name of the attribute to save
*/
- public CallParamRule(int paramIndex,
- String attributeName) {
+ public CallParamRule( int paramIndex, String attributeName )
+ {
this.paramIndex = paramIndex;
this.attributeName = attributeName;
}
-
/**
* Construct a "call parameter" rule.
- *
+ *
* @param paramIndex The zero-relative parameter number
* @param fromStack should this parameter be taken from the top of the stack?
- */
- public CallParamRule(int paramIndex, boolean fromStack) {
-
- this.paramIndex = paramIndex;
+ */
+ public CallParamRule( int paramIndex, boolean fromStack )
+ {
+
+ this.paramIndex = paramIndex;
this.fromStack = fromStack;
}
-
+
/**
- * Constructs a "call parameter" rule which sets a parameter from the stack.
- * If the stack contains too few objects, then the parameter will be set to null.
- *
+ * Constructs a "call parameter" rule which sets a parameter from the stack. If the stack contains too few objects,
+ * then the parameter will be set to null.
+ *
* @param paramIndex The zero-relative parameter number
- * @param stackIndex the index of the object which will be passed as a parameter.
- * The zeroth object is the top of the stack, 1 is the next object down and so on.
- */
- public CallParamRule(int paramIndex, int stackIndex) {
-
- this.paramIndex = paramIndex;
+ * @param stackIndex the index of the object which will be passed as a parameter. The zeroth object is the top of
+ * the stack, 1 is the next object down and so on.
+ */
+ public CallParamRule( int paramIndex, int stackIndex )
+ {
+
+ this.paramIndex = paramIndex;
this.fromStack = true;
this.stackIndex = stackIndex;
}
-
- // ----------------------------------------------------- Instance Variables
+ // ----------------------------------------------------- Instance Variables
/**
* The attribute from which to save the parameter value
*/
protected String attributeName = null;
-
/**
* The zero-relative index of the parameter we are saving.
*/
protected int paramIndex = 0;
-
/**
* Is the parameter to be set from the stack?
*/
protected boolean fromStack = false;
-
+
/**
* The position of the object from the top of the stack
*/
protected int stackIndex = 0;
- /**
- * Stack is used to allow nested body text to be processed.
- * Lazy creation.
+ /**
+ * Stack is used to allow nested body text to be processed. Lazy creation.
*/
protected Stack bodyTextStack;
// --------------------------------------------------------- Public Methods
-
/**
* Process the start of this element.
- *
+ *
* @param attributes The attribute list for this element
*/
@Override
- public void begin(String namespace, String name, Attributes attributes) throws Exception {
+ public void begin( String namespace, String name, Attributes attributes )
+ throws Exception
+ {
Object param = null;
-
- if (attributeName != null) {
-
- param = attributes.getValue(attributeName);
-
- } else if(fromStack) {
-
- param = getDigester().peek(stackIndex);
-
- if (getDigester().getLogger().isDebugEnabled()) {
-
- StringBuilder sb = new StringBuilder("[CallParamRule]{");
- sb.append(getDigester().getMatch());
- sb.append("} Save from stack; from stack?").append(fromStack);
- sb.append("; object=").append(param);
- getDigester().getLogger().debug(sb.toString());
- }
+
+ if ( attributeName != null )
+ {
+
+ param = attributes.getValue( attributeName );
+
+ }
+ else if ( fromStack )
+ {
+
+ param = getDigester().peek( stackIndex );
+
+ if ( getDigester().getLogger().isDebugEnabled() )
+ {
+
+ StringBuilder sb = new StringBuilder( "[CallParamRule]{" );
+ sb.append( getDigester().getMatch() );
+ sb.append( "} Save from stack; from stack?" ).append( fromStack );
+ sb.append( "; object=" ).append( param );
+ getDigester().getLogger().debug( sb.toString() );
+ }
}
-
+
// Have to save the param object to the param stack frame here.
// Can't wait until end(). Otherwise, the object will be lost.
- // We can't save the object as instance variables, as
+ // We can't save the object as instance variables, as
// the instance variables will be overwritten
// if this CallParamRule is reused in subsequent nesting.
-
- if(param != null) {
+
+ if ( param != null )
+ {
Object parameters[] = getDigester().peekParams();
parameters[paramIndex] = param;
}
}
-
/**
* Process the body text of this element.
- *
+ *
* @param bodyText The body text of this element
*/
@Override
- public void body(String namespace, String name, String text) throws Exception {
+ public void body( String namespace, String name, String text )
+ throws Exception
+ {
- if (attributeName == null && !fromStack) {
+ if ( attributeName == null && !fromStack )
+ {
// We must wait to set the parameter until end
// so that we can make sure that the right set of parameters
// is at the top of the stack
- if (bodyTextStack == null) {
+ if ( bodyTextStack == null )
+ {
bodyTextStack = new Stack();
}
- bodyTextStack.push(text.trim());
+ bodyTextStack.push( text.trim() );
}
}
-
+
/**
* Process any body texts now.
*/
@Override
- public void end(String namespace, String name) {
- if (bodyTextStack != null && !bodyTextStack.empty()) {
+ public void end( String namespace, String name )
+ {
+ if ( bodyTextStack != null && !bodyTextStack.empty() )
+ {
// what we do now is push one parameter onto the top set of parameters
Object parameters[] = getDigester().peekParams();
parameters[paramIndex] = bodyTextStack.pop();
@@ -221,19 +222,19 @@ public class CallParamRule extends Rule
* Render a printable version of this Rule.
*/
@Override
- public String toString() {
+ public String toString()
+ {
- StringBuilder sb = new StringBuilder("CallParamRule[");
- sb.append("paramIndex=");
- sb.append(paramIndex);
- sb.append(", attributeName=");
- sb.append(attributeName);
- sb.append(", from stack=");
- sb.append(fromStack);
- sb.append("]");
- return (sb.toString());
+ StringBuilder sb = new StringBuilder( "CallParamRule[" );
+ sb.append( "paramIndex=" );
+ sb.append( paramIndex );
+ sb.append( ", attributeName=" );
+ sb.append( attributeName );
+ sb.append( ", from stack=" );
+ sb.append( fromStack );
+ sb.append( "]" );
+ return ( sb.toString() );
}
-
}