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`