org.apache.xalan.transformer

## Class StackGuard

- java.lang.Object
- - org.apache.xalan.transformer.StackGuard

-     public class StackGuard
      extends java.lang.Object

  Class to guard against recursion getting too deep.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StackGuard(TransformerImpl transformerImpl)` Constructor StackGuard

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkForInfinateLoop()` Check if we are in an infinite loop
    `int` | `countLikeTemplates(ElemTemplate templ, int pos)` Overide equal method for StackGuard objects
    `int` | `getRecursionLimit()` Get the recursion limit.
    `void` | `setRecursionLimit(int limit)` Set the recursion limit.

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

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StackGuard

          public StackGuard(TransformerImpl transformerImpl)

      Constructor StackGuard

  - ### Method Detail

    - #### getRecursionLimit

          public int getRecursionLimit()

      Get the recursion limit. Used for infinite loop check. If the value is -1, do not check for infinite loops. Anyone who wants to enable that check should change the value of this variable to be the level of recursion that they want to check. Be careful setting this variable, if the number is too low, it may report an infinite loop situation, when there is none. Post version 1.0.0, we'll make this a runtime feature.
      Returns:
        The recursion limit.

    - #### setRecursionLimit

          public void setRecursionLimit(int limit)

      Set the recursion limit. Used for infinite loop check. If the value is -1, do not check for infinite loops. Anyone who wants to enable that check should change the value of this variable to be the level of recursion that they want to check. Be careful setting this variable, if the number is too low, it may report an infinite loop situation, when there is none. Post version 1.0.0, we'll make this a runtime feature.
      Parameters:
        `limit` - The recursion limit.

    - #### countLikeTemplates

          public int countLikeTemplates(ElemTemplate templ,
                                        int pos)

      Overide equal method for StackGuard objects

    - #### checkForInfinateLoop

          public void checkForInfinateLoop()
                                    throws javax.xml.transform.TransformerException

      Check if we are in an infinite loop
      Throws:
        `javax.xml.transform.TransformerException`

Copyright © 2023 Apache XML Project. All Rights Reserved.