RuleManager
Date: 2016-07-03

com.icl.saxon

## Class RuleManager

- java.lang.Object
- - com.icl.saxon.RuleManager

-     public class RuleManager
      extends java.lang.Object

  RuleManager maintains a set of template rules, one set for each mode

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RuleManager(NamePool pool)` create a RuleManager and initialise variables

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Enumeration` | `getAllModes()` Get a list of all registered modes
    `NodeHandler` | `getHandler(NodeInfo node, Context c)` Find the handler registered for a particular node in default mode.
    `NodeHandler` | `getHandler(NodeInfo node, Mode mode, Context c)` Find the handler registered for a particular node in a specific mode.
    `NodeHandler` | `getHandler(NodeInfo node, Mode mode, int min, int max, Context c)` Get a handler whose import precedence is in a particular range.
    `Mode` | `getMode(int modeNameCode)` Get the Mode object for a named mode.
    `StandaloneContext` | `getStandaloneContext()` Get the standalone context for XPath expressions and patterns.
    `void` | `resetHandlers()` Set up a new table of handlers.
    `void` | `setHandler(Pattern pattern, NodeHandler eh, Mode mode, int precedence)` Register a handler for a particular pattern.
    `void` | `setHandler(Pattern pattern, NodeHandler eh, Mode mode, int precedence, double priority)` Register a handler for a particular pattern.
    `void` | `setHandler(java.lang.String pattern, NodeHandler eh)` Register a handler for a particular pattern.
    `void` | `setStandaloneContext(StandaloneContext context)` Set the standalone context for XPath expressions and patterns.

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

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

- - ### Constructor Detail

    - #### RuleManager

          public RuleManager(NamePool pool)

      create a RuleManager and initialise variables

  - ### Method Detail

    - #### setStandaloneContext

          public void setStandaloneContext(StandaloneContext context)

      Set the standalone context for XPath expressions and patterns. This is used only for expressions and patterns occurring outside the context of a stylesheet.

    - #### getStandaloneContext

          public StandaloneContext getStandaloneContext()

      Get the standalone context for XPath expressions and patterns. This is used only for expressions and patterns occurring outside the context of a stylesheet.
      Returns:
        the StandaloneContext associated with this RuleManager. Creates a new one if none has been set explicitly.

    - #### resetHandlers

          public void resetHandlers()

      Set up a new table of handlers.

    - #### getMode

          public Mode getMode(int modeNameCode)

      Get the Mode object for a named mode. If there is not one already registered. a new Mode is created.
      Parameters:
        `modeNameCode` - The name code of the mode. Supply -1 to get the default mode.

    - #### setHandler

          public void setHandler(java.lang.String pattern,
                        NodeHandler eh)
                          throws XPathException

      Register a handler for a particular pattern. This is a convenience interface that calls setHandler(pattern, eh, mode, precedence) with default mode and precedence.
      Parameters:
        `pattern` - A match pattern
        `eh` - The NodeHandler to be used
      Throws:
        `XPathException`
      See Also:
        `NodeHandler`, `Pattern`

    - #### setHandler

          public void setHandler(Pattern pattern,
                        NodeHandler eh,
                        Mode mode,
                        int precedence)

      Register a handler for a particular pattern. The priority of the rule is the default priority for the pattern, which depends on the syntax of the pattern suppllied.
      Parameters:
        `pattern` - A match pattern
        `eh` - The ElementHandler to be used
        `mode` - The processing mode
        `precedence` - The import precedence (use 0 by default)

    - #### setHandler

          public void setHandler(Pattern pattern,
                        NodeHandler eh,
                        Mode mode,
                        int precedence,
                        double priority)

      Register a handler for a particular pattern.
      Parameters:
        `pattern` - Must be a valid Pattern.
        `eh` - The ElementHandler to be used
        `mode` - The processing mode to which this element handler applies
        `precedence` - The import precedence of this rule
        `priority` - The priority of the rule: if an element matches several patterns, the one with highest priority is used
      See Also:
        `NodeHandler`, `Pattern`

    - #### getHandler

          public NodeHandler getHandler(NodeInfo node,
                               Context c)
                                 throws javax.xml.transform.TransformerException

      Find the handler registered for a particular node in default mode.
      Parameters:
        `node` - The NodeInfo for the relevant node
      Returns:
        The handler that will process this node. Returns the default handler for the type of node if there is no specific one registered.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### getHandler

          public NodeHandler getHandler(NodeInfo node,
                               Mode mode,
                               Context c)
                                 throws javax.xml.transform.TransformerException

      Find the handler registered for a particular node in a specific mode.
      Parameters:
        `node` - The NodeInfo for the relevant node
        `mode` - The processing mode
      Returns:
        The handler that will process this node Returns null if there is no specific handler registered.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### getHandler

          public NodeHandler getHandler(NodeInfo node,
                               Mode mode,
                               int min,
                               int max,
                               Context c)
                                 throws XPathException

      Get a handler whose import precedence is in a particular range. This is used to support the xsl:apply-imports function
      Throws:
        `XPathException`

    - #### getAllModes

          public java.util.Enumeration getAllModes()

      Get a list of all registered modes
      Returns:
        an Enumeration of all modes in use, excluding the default (unnamed) mode