net.sf.saxon.trans
Class Mode

java.lang.Object
  extended by net.sf.saxon.trans.Mode
All Implemented Interfaces:
Serializable

public class Mode
extends Object
implements Serializable

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

Author:
Michael H. Kay
See Also:
Serialized Form

Field Summary
static int ALL_MODES
           
static int DEFAULT_MODE
           
static int NAMED_MODE
           
static int STRIPPER_MODE
           
 
Constructor Summary
Mode(int usage, int nameCode)
          Default constructor - creates a Mode containing no rules
Mode(Mode omniMode, int modeNameCode)
          Construct a new Mode, copying the contents of an existing Mode
 
Method Summary
 void addRule(Pattern p, Object action, 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 getModeNameCode()
          Get the name of the mode (for diagnostics only)
 Rule getNextMatchRule(NodeInfo node, Rule currentRule, XPathContext context)
          Get the rule corresponding to a given Node, by finding the next-best Pattern match after the specified object.
 Rule 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.
 Rule 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
equals, 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,
            int nameCode)
Default constructor - creates a Mode containing no rules

Parameters:
usage - one of DEFAULT_MODE, NAMED_MODE, STRIPPER_MODE

Mode

public Mode(Mode omniMode,
            int modeNameCode)
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


getModeNameCode

public int getModeNameCode()
Get the name of the mode (for diagnostics only)


addRule

public void addRule(Pattern p,
                    Object action,
                    int precedence,
                    double priority)
Add a rule to the Mode.

Parameters:
p - a Pattern
action - 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 Rule 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 best matching rule, if any (otherwise null).
Throws:
XPathException

getRule

public Rule 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 Rule getNextMatchRule(NodeInfo node,
                             Rule currentRule,
                             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


Copyright (C) Michael H. Kay. All rights reserved.