Mode
Date: 2016-07-03

com.icl.saxon

## Class Mode

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

-     public class Mode
      extends java.lang.Object

  A Mode is a collection of rules; the selection of a rule to apply to a given element is determined by a Pattern.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Mode()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addRule(Pattern p, java.lang.Object obj, int precedence, double priority)` Add a rule to the Mode.
    `int` | `getList(int fingerprint, int type)` Determine which list to use for a given pattern (we must also search the generic list)
    `int` | `getNameCode()` Get the name of this mode (for tracing output)
    `java.lang.Object` | `getRule(NodeInfo node, Context context)` Get the rule corresponding to a given Node, by finding the best Pattern match.
    `java.lang.Object` | `getRule(NodeInfo node, int min, int max, Context context)` Get the rule corresponding to a given Node, by finding the best Pattern match, subject to a minimum and maximum precedence.
    `void` | `setNameCode(int nameCode)` Set the name of this mode (for tracing output)

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

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

- - ### Constructor Detail

    - #### Mode

          public Mode()

  - ### Method Detail

    - #### setNameCode

          public void setNameCode(int nameCode)

      Set the name of this mode (for tracing output)

    - #### getNameCode

          public int getNameCode()

      Get the name of this mode (for tracing output)

    - #### addRule

          public void addRule(Pattern p,
                     java.lang.Object obj,
                     int precedence,
                     double priority)

      Add a rule to the Mode.
      The rule effectively replaces any other rule for the same pattern/mode at the same or a lower priority.
      Parameters:
        `p` - a Pattern
        `obj` - the Object to return from getRule() when the supplied element matches this Pattern

    - #### getList

          public int getList(int fingerprint,
                    int type)

      Determine which list to use for a given pattern (we must also search the generic list)

    - #### getRule

          public java.lang.Object getRule(NodeInfo node,
                                 Context context)
                                   throws javax.xml.transform.TransformerException

      Get the rule corresponding to a given Node, by finding the best Pattern match.
      Parameters:
        `node` - the NodeInfo referring to the node to be matched
      Returns:
        the object (e.g. a NodeHandler) registered for that element, if any (otherwise null).
      Throws:
        `javax.xml.transform.TransformerException`

    - #### getRule

          public java.lang.Object getRule(NodeInfo node,
                                 int min,
                                 int max,
                                 Context context)
                                   throws XPathException

      Get the rule corresponding to a given Node, by finding the best Pattern match, subject to a minimum and maximum precedence. (This supports xsl:apply-imports)
      Parameters:
        `node` - the NodeInfo referring to the node to be matched
      Returns:
        the object (e.g. a NodeHandler) registered for that element, if any (otherwise null).
      Throws:
        `XPathException`