Package 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)`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final 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 final boolean`
`fromStack`
Is the parameter to be set from the stack?
`protected final int`
`paramIndex`
The zero-relative index of the parameter we are saving.
`protected final 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
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, String attributeName)`
Construct a "call parameter" rule that will save the value of the specified attribute as the parameter value.

## Method Summary

Modifier and Type
Method
Description
`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

`finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI`

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

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

## Field Details

### attributeName

protected final String attributeName
The attribute from which to save the parameter value

### paramIndex

protected final int paramIndex
The zero-relative index of the parameter we are saving.

### fromStack

protected final boolean fromStack
Is the parameter to be set from the stack?

### stackIndex

protected final 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 Details

### 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

## Method Details

### 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` - if an error occurs while processing the event

### 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` - if an error occurs while processing the event

### 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`