Class Value
java.lang.Object
com.icl.saxon.expr.Expression
com.icl.saxon.expr.Value
- Direct Known Subclasses:
BooleanValue, NodeSetValue, NumericValue, ObjectValue, StringValue
A value is the result of an expression but it is also an expression in its own right
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intConstants denoting the data types of an expression or valuestatic final intstatic final intstatic final intstatic final intFields inherited from class Expression
staticContext -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract booleanConvert the value to a Booleanabstract doubleasNumber()Convert the value to a Numberabstract StringasString()Convert the value to a String valuebooleanTest how a Value compares to another Value under a relational comparison.abstract intconversionPreference(Class required) Get conversion preference for this value to a Java class.abstract ObjectconvertToJava(Class target) Convert to Java object (for passing to external functions)booleanTest whether two values are equal.Evaluate the Value.intDetermine which aspects of the context the expression depends on.protected static final intinverse(int operator) Return the inverse of a relational operator, so that "a op b" can be rewritten as "b inverse(op) a"booleanTest whether two values are not-equal.protected final booleannumericCompare(int operator, double x, double y) Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.simplify()Simplify an expressionstatic doubleStatic method to convert strings to numbers.Methods inherited from class Expression
containsReferences, display, enumerate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getDataType, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, setStaticContext, usesCurrent
-
Field Details
-
BOOLEAN
public static final int BOOLEANConstants denoting the data types of an expression or value- See Also:
-
NUMBER
public static final int NUMBER- See Also:
-
STRING
public static final int STRING- See Also:
-
NODESET
public static final int NODESET- See Also:
-
OBJECT
public static final int OBJECT- See Also:
-
ANY
public static final int ANY- See Also:
-
-
Constructor Details
-
Value
public Value()
-
-
Method Details
-
stringToNumber
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
Evaluate the Value. Null operation, because it has already been evaluated- Specified by:
evaluatein classExpression- Parameters:
context- The context (not used)- Returns:
- the value, unchanged
- Throws:
XPathException
-
simplify
Simplify an expression- Overrides:
simplifyin classExpression- 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:
getDependenciesin classExpression
-
asString
Convert the value to a String value- Returns:
- the value converted to a String
- Throws:
XPathException
-
asNumber
Convert the value to a Number- Returns:
- the value converted to a String
- Throws:
XPathException
-
asBoolean
Convert the value to a Boolean- Returns:
- the value converted to a Boolean
- Throws:
XPathException
-
equals
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
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
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
Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.- Specified by:
reducein classExpression- Parameters:
dependencies- The dependencies to be removedcontext- The context to be used for the partial evaluation- Returns:
- a new expression that does not have any of the specified dependencies
-
convertToJava
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
Get conversion preference for this value to a Java class. A low result indicates higher preference.
-