Class Rule

  • Direct Known Subclasses:
    RuleEE

    public class Rule
    extends java.lang.Object
    Rule: a template rule, or a strip-space rule used to support the implementation
    • Field Detail

      • pattern

        protected Pattern pattern
      • 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 Detail

      • Rule

        public 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 Detail

      • copyFrom

        protected void copyFrom​(Rule r,
                                boolean copyChain)
        Copy a rule, including optionally the chain of rules linked to it
        Parameters:
        r - the rule to be copied
        copyChain - true if the whole chain of rules is to be copied
      • copy

        public Rule copy​(boolean copyChain)
      • getSequence

        public int getSequence()
      • getPartNumber

        public int getPartNumber()
      • setAction

        public void setAction​(RuleTarget action)
      • 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
      • 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