## net.sf.saxon.trans
Class Rule

    java.lang.Object
      net.sf.saxon.trans.Rule

All Implemented Interfaces:
  Serializable

    public final class Rule

extends Object
implements Serializable

Rule: a template rule, or a strip-space rule used to support the implementation

See Also:
  Serialized Form

Constructor Summary
`Rule(Pattern p, RuleTarget o, int prec, int min, double prio, int seq)` Create a Rule.
`Rule(Rule r)` Copy a rule, including the chain of rules linked to it

Method Summary
`int` `compareComputedRank(Rule other)` Rules have an ordering, based on their precedence and priority.
`int` `compareRank(Rule other)` Rules have an ordering, based on their precedence and priority.
`RuleTarget` `getAction()`
`int` `getMinImportPrecedence()`
`Rule` `getNext()`
`Pattern` `getPattern()`
`int` `getPrecedence()`
`double` `getPriority()`
`int` `getRank()`
`int` `getSequence()`
`boolean` `isAlwaysMatches()`
`void` `setAction(RuleTarget action)`
`void` `setAlwaysMatches(boolean matches)`
`void` `setNext(Rule next)`
`void` `setRank(int rank)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Rule

    public Rule(Pattern p,
                RuleTarget o,
                int prec,
                int min,
                double prio,
                int seq)

  Create a Rule.

  Parameters:
    `p` - the pattern that this rule matches
    `o` - the object invoked by this rule (usually a Template)
    `prec` - the precedence of the rule
    `min` - the minumum import precedence for xsl:apply-imports
    `prio` - the priority of the rule
    `seq` - a sequence number for ordering of rules

### Rule

    public Rule(Rule r)

  Copy a rule, including the chain of rules linked to it

  Parameters:
    `r` - the rule to be copied

Method Detail

### getSequence

    public int getSequence()

### setAction

    public void setAction(RuleTarget action)

### getAction

    public RuleTarget getAction()

### getNext

    public Rule getNext()

### setNext

    public void setNext(Rule next)

### getPattern

    public Pattern getPattern()

### getPrecedence

    public int getPrecedence()

### getMinImportPrecedence

    public int getMinImportPrecedence()

### getPriority

    public double getPriority()

### setAlwaysMatches

    public void setAlwaysMatches(boolean matches)

### isAlwaysMatches

    public boolean isAlwaysMatches()

### setRank

    public void setRank(int rank)

### getRank

    public int getRank()

### compareRank

    public int compareRank(Rule other)

  Rules have an ordering, based on their precedence and priority. This method compares them using the precomputed rank value.

  Parameters:
    `other` - Another rule whose ordering rank is to be compared with this one
  Returns:
    <0 if this rule has lower rank, that is if it has lower precedence or equal precedence and lower priority. 0 if the two rules have equal precedence and priority. >0 if this rule has higher rank in precedence/priority order

### compareComputedRank

    public int compareComputedRank(Rule other)

  Rules have an ordering, based on their precedence and priority.

  Parameters:
    `other` - Another rule whose ordering rank is to be compared with this one
  Returns:
    <0 if this rule has lower rank, that is if it has lower precedence or equal precedence and lower priority. 0 if the two rules have equal precedence and priority. >0 if this rule has higher rank in precedence/priority order

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.