net.sf.saxon.trans
Class Mode

java.lang.Object
  extended bynet.sf.saxon.trans.Mode
All Implemented Interfaces:
java.io.Serializable

public class Mode
extends java.lang.Object
implements java.io.Serializable

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

See Also:
Serialized Form

Nested Class Summary
static class Mode.Rule
          Inner class Rule used to support the implementation
 
Field Summary
static int ALL_MODES
           
static int DEFAULT_MODE
           
static int NAMED_MODE
           
static int STRIPPER_MODE
           
 
Constructor Summary
Mode(int usage)
          Default constructor - creates a Mode containing no rules
Mode(Mode omniMode)
          Construct a new Mode, copying the contents of an existing Mode
 
Method Summary
 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)
 java.lang.Object getNextMatchRule(NodeInfo node, java.lang.Object currentHandler, XPathContext context)
          Get the rule corresponding to a given Node, by finding the next-best Pattern match after the specified object.
 java.lang.Object getRule(NodeInfo node, int min, int max, XPathContext context)
          Get the rule corresponding to a given Node, by finding the best Pattern match, subject to a minimum and maximum precedence.
 java.lang.Object getRule(NodeInfo node, XPathContext context)
          Get the rule corresponding to a given Node, by finding the best Pattern match.
 boolean isDefaultMode()
          Determine if this is the default mode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MODE

public static final int DEFAULT_MODE
See Also:
Constant Field Values

ALL_MODES

public static final int ALL_MODES
See Also:
Constant Field Values

NAMED_MODE

public static final int NAMED_MODE
See Also:
Constant Field Values

STRIPPER_MODE

public static final int STRIPPER_MODE
See Also:
Constant Field Values
Constructor Detail

Mode

public Mode(int usage)
Default constructor - creates a Mode containing no rules

Parameters:
usage - one of DEFAULT_MODE, NAMED_MODE, STRIPPER_MODE

Mode

public Mode(Mode omniMode)
Construct a new Mode, copying the contents of an existing Mode

Parameters:
omniMode - the existing mode. May be null, in which case it is not copied
Method Detail

isDefaultMode

public boolean isDefaultMode()
Determine if this is the default mode


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 node matches this Pattern
precedence - the import precedence of the rule
priority - the explicit or implicit priority of the rule

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,
                                XPathContext context)
                         throws XPathException
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:
XPathException

getRule

public java.lang.Object getRule(NodeInfo node,
                                int min,
                                int max,
                                XPathContext 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

getNextMatchRule

public java.lang.Object getNextMatchRule(NodeInfo node,
                                         java.lang.Object currentHandler,
                                         XPathContext context)
                                  throws XPathException
Get the rule corresponding to a given Node, by finding the next-best Pattern match after the specified object.

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