org.apache.tomcat.util.digester

## Class CallParamRule

- java.lang.Object
- - org.apache.tomcat.util.digester.Rule
  - - org.apache.tomcat.util.digester.CallParamRule

    public class CallParamRule
    extends Rule

Rule implementation that saves a parameter for use by a surrounding `CallMethodRule`.``

This parameter may be:

- from an attribute of the current element See `CallParamRule(int paramIndex, String attributeName)`
- from current the element body See `CallParamRule(int paramIndex)`
- from the top object on the stack. See `CallParamRule(int paramIndex, boolean fromStack)`
- the current path being processed (separate `Rule`). See `PathCallParamRule`

### Field Summary

Fields
`protected String` `attributeName` The attribute from which to save the parameter value
`protected ArrayStack<String>` `bodyTextStack` Stack is used to allow nested body text to be processed.
`protected boolean` `fromStack` Is the parameter to be set from the stack?
`protected int` `paramIndex` The zero-relative index of the parameter we are saving.
`protected int` `stackIndex` The position of the object from the top of the stack

### Fields inherited from class org.apache.tomcat.util.digester.Rule

`digester, namespaceURI`

### Constructor Summary

Constructors
Constructor and Description
`CallParamRule(int paramIndex)` Construct a "call parameter" rule that will save the body text of this element as the parameter value.
`CallParamRule(int paramIndex, boolean fromStack)` Construct a "call parameter" rule.
`CallParamRule(int paramIndex, int stackIndex)` Constructs a "call parameter" rule which sets a parameter from the stack.
`CallParamRule(int paramIndex, String attributeName)` Construct a "call parameter" rule that will save the value of the specified attribute as the parameter value.

### Method Summary

Methods
`void` `begin(String namespace, String name, Attributes attributes)` Process the start of this element.
`void` `body(String namespace, String name, String bodyText)` Process the body text of this element.
`void` `end(String namespace, String name)` Process any body texts now.
`String` `toString()` Render a printable version of this Rule.

### Methods inherited from class org.apache.tomcat.util.digester.Rule

`begin, body, end, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### attributeName

    protected String attributeName

The attribute from which to save the parameter value

#### paramIndex

    protected int paramIndex

The zero-relative index of the parameter we are saving.

#### fromStack

    protected boolean fromStack

Is the parameter to be set from the stack?

#### stackIndex

    protected int stackIndex

The position of the object from the top of the stack

#### bodyTextStack

    protected ArrayStack<String> bodyTextStack

Stack is used to allow nested body text to be processed. Lazy creation.

### Constructor Detail

#### CallParamRule

    public CallParamRule(int paramIndex)

Construct a "call parameter" rule that will save the body text of this element as the parameter value.

Parameters:
  `paramIndex` - The zero-relative parameter number

#### CallParamRule

    public CallParamRule(int paramIndex,
                 String attributeName)

Construct a "call parameter" rule that will save the value of the specified attribute as the parameter value.

Parameters:
  `paramIndex` - The zero-relative parameter number
  `attributeName` - The name of the attribute to save

#### CallParamRule

    public CallParamRule(int paramIndex,
                 boolean fromStack)

Construct a "call parameter" rule.

Parameters:
  `paramIndex` - The zero-relative parameter number
  `fromStack` - should this parameter be taken from the top of the stack?

#### CallParamRule

    public CallParamRule(int paramIndex,
                 int stackIndex)

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.

Parameters:
  `paramIndex` - The zero-relative parameter number
  `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.

### Method Detail

#### begin

    public void begin(String namespace,
             String name,
             Attributes attributes)
               throws Exception

Process the start of this element.

Overrides:
  `begin` in class `Rule`
Parameters:
  `namespace` - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
  `name` - the local name if the parser is namespace aware, or just the element name otherwise
  `attributes` - The attribute list for this element
Throws:
  `Exception`

#### body

    public void body(String namespace,
            String name,
            String bodyText)
              throws Exception

Process the body text of this element.

Overrides:
  `body` in class `Rule`
Parameters:
  `namespace` - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
  `name` - the local name if the parser is namespace aware, or just the element name otherwise
  `bodyText` - The body text of this element
Throws:
  `Exception`

#### end

    public void end(String namespace,
           String name)

Process any body texts now.

Overrides:
  `end` in class `Rule`
Parameters:
  `namespace` - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
  `name` - the local name if the parser is namespace aware, or just the element name otherwise

#### toString

    public String toString()

Render a printable version of this Rule.

Overrides:
  `toString` in class `Object`