Class Rule

java.lang.Object
net.sf.saxon.trans.rules.Rule
Direct Known Subclasses:
RuleEE

public class Rule extends Object
Rule: common functionality representing an abstraction of a template rule, a strip-space rule, or an accumulator rule
  • Field Details

    • pattern

      protected Pattern pattern
    • action

      protected RuleTarget action
    • precedence

      protected int precedence
    • minImportPrecedence

      protected int minImportPrecedence
    • priority

      protected double priority
    • next

      protected Rule next
    • sequence

      protected int sequence
    • part

      protected int part
  • Constructor Details

    • Rule

      protected Rule()
    • Rule

      public Rule(Pattern p, RuleTarget o, int prec, int min, double prio, int seq, int part)
      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
  • Method Details

    • getSequence

      public int getSequence()
    • getPartNumber

      public int getPartNumber()
    • setAction

      public void setAction(RuleTarget action)
    • getAction

      public RuleTarget getAction()
    • getNext

      public Rule getNext()
    • setNext

      public void setNext(Rule next)
    • getPattern

      public Pattern getPattern()
    • setPattern

      public void setPattern(Pattern pattern)
    • 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()
    • export

      public void export(ExpressionPresenter out, boolean modeStreamable) throws XPathException
      Export this rule
      Parameters:
      out - the destination for the export
      modeStreamable - if the mode for this rule is streamable (should be EE only?)
      Throws:
      XPathException
    • exportOtherProperties

      public void exportOtherProperties(ExpressionPresenter out) throws XPathException
      Add other exported properties as required
      Parameters:
      out - the export destination
      Throws:
      XPathException
    • 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
    • matches

      public boolean matches(Item item, XPathContextMajor context) throws XPathException
      Throws:
      XPathException