Class TokenMatchOperand


  • public class TokenMatchOperand
    extends Characteristic
    Given an expression, this characteristic evaluates the set of hash keys corresponding to the whitespace-separated tokens in the string values of the items selected by that expression.

    It is used typically in optimizing patterns in DITA stylesheets, where the pattern takes the form *[@class = ' topic/li '] or similar. In this example the characteristic will be obtained by tokenizing the value of @class on whitespace boundaries, and finding the hash code of the collation key of each of these tokens. This set of hash codes is then compared with the hashcode of the constant string ' topic/li '. The benefit comes only when a rule chain contains many rules with this same general structure, but different constant strings; the same set of hash codes will then be compared against each of the string constants in turn.

    • Constructor Detail

      • TokenMatchOperand

        public TokenMatchOperand​(Expression exp)
        Create a token match characteristic
        Parameters:
        exp - the expression to be tokenized. In the case of DITA-OT stylesheets, this expression will generally be "@class".
    • Method Detail

      • evaluate

        public IntSet evaluate​(XPathContext context)
                        throws XPathException
        Description copied from class: Characteristic
        Evaluate the value of this characteristic for the context item
        Specified by:
        evaluate in class Characteristic
        Parameters:
        context - the dynamic evaluation context; the context item is the item being matched
        Returns:
        the value of the characteristic
        Throws:
        XPathException - if evaluation of the characteristic fails
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object