Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

Field Summary
`static int` | `m_recursionLimit` Used for infinite loop check.

Constructor Summary
`StackGuard(TransformerImpl transformerImpl)` Constructor StackGuard

Method Summary
`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`

Field Detail

### m_recursionLimit

    public static int m_recursionLimit

  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.

Constructor Detail

### StackGuard

    public StackGuard(TransformerImpl transformerImpl)

  Constructor StackGuard
  Parameters:
    `xslTemplate` - Current template node
    `sourceXML` - Source Node

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
  Parameters:
    `obj` - StackGuard object to compare
  Returns:
    True if the given object matches this StackGuard object

### checkForInfinateLoop

    public void checkForInfinateLoop()
                              throws TransformerException

  Check if we are in an infinite loop
  Parameters:
    `guard` - Current StackGuard object (matching current template)
  Throws:
    TransformerException -

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 Apache XML Project. All Rights Reserved.