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 and Description
    --- | ---
    `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, String attributeName)` Construct a "call parameter" rule that will save the value of the specified attribute as the parameter value.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 Detail

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

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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.