Class Value

    • Constructor Detail

      • Value

        public Value()
    • Method Detail

      • stringToNumber

        public static double stringToNumber​(java.lang.String s)
        Static method to convert strings to numbers. Might as well go here as anywhere else.
        Parameters:
        s - the String to be converted
        Returns:
        a double representing the value of the String; if it cannot be converted, return NaN (as required by the XSL specification)
      • evaluate

        public Value evaluate​(Context context)
                       throws XPathException
        Evaluate the Value. Null operation, because it has already been evaluated
        Specified by:
        evaluate in class Expression
        Parameters:
        context - The context (not used)
        Returns:
        the value, unchanged
        Throws:
        XPathException
      • simplify

        public Expression simplify()
        Simplify an expression
        Overrides:
        simplify in class Expression
        Returns:
        the simplified expression
      • getDependencies

        public int getDependencies()
        Determine which aspects of the context the expression depends on. The result is a bitwise-or'ed value composed from constants such as Context.VARIABLES and Context.CURRENT_NODE
        Specified by:
        getDependencies in class Expression
      • asString

        public abstract java.lang.String asString()
                                           throws XPathException
        Convert the value to a String value
        Returns:
        the value converted to a String
        Throws:
        XPathException
      • asNumber

        public abstract double asNumber()
                                 throws XPathException
        Convert the value to a Number
        Returns:
        the value converted to a String
        Throws:
        XPathException
      • asBoolean

        public abstract boolean asBoolean()
                                   throws XPathException
        Convert the value to a Boolean
        Returns:
        the value converted to a Boolean
        Throws:
        XPathException
      • equals

        public boolean equals​(Value other)
                       throws XPathException
        Test whether two values are equal. See the XSL specification: if either operand is a nodeset, they are compared as nodesets; else if either is a boolean, they are compared as booleans; else if either operand is a number, they are compared as numbers; else they are compared as strings.
        Returns:
        a boolean giving the value of the expression, evaluated in the current context
        Throws:
        XPathException
      • notEquals

        public boolean notEquals​(Value other)
                          throws XPathException
        Test whether two values are not-equal. Note that a!=b means the same as !(a=b) except where either a or b is a nodeset.
        Returns:
        a boolean giving the value of the expression, evaluated in the current context
        Throws:
        XPathException
      • compare

        public boolean compare​(int operator,
                               Value other)
                        throws XPathException
        Test how a Value compares to another Value under a relational comparison. Note that the method is overridden for NodeSetValue
        Parameters:
        operator - The comparison operator, one of Tokenizer.LE, Tokenizer.LT, Tokenizer.GE, Tokenizer.GT, Tokenizer.EQUALS, Tokenizer.NE.
        Throws:
        XPathException
      • inverse

        protected static final int inverse​(int operator)
        Return the inverse of a relational operator, so that "a op b" can be rewritten as "b inverse(op) a"
      • numericCompare

        protected final boolean numericCompare​(int operator,
                                               double x,
                                               double y)
      • reduce

        public Expression reduce​(int dependencies,
                                 Context context)
        Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.
        Specified by:
        reduce in class Expression
        Parameters:
        dependencies - The dependencies to be removed
        context - The context to be used for the partial evaluation
        Returns:
        a new expression that does not have any of the specified dependencies
      • convertToJava

        public abstract java.lang.Object convertToJava​(java.lang.Class target)
                                                throws XPathException
        Convert to Java object (for passing to external functions)
        Parameters:
        target - The class required by the external function
        Returns:
        an object of the target class
        Throws:
        XPathException
      • conversionPreference

        public abstract int conversionPreference​(java.lang.Class required)
        Get conversion preference for this value to a Java class. A low result indicates higher preference.