com.icl.saxon.expr
Class Value
public abstract class Value
A value is the result of an expression but it is also an expression in its own right
abstract boolean | asBoolean() - Convert the value to a Boolean
|
abstract double | asNumber() - Convert the value to a Number
|
abstract String | asString() - Convert the value to a String value
|
boolean | compare(int operator, Value other) - Test how a Value compares to another Value under a relational comparison.
|
abstract int | conversionPreference(Class required) - Get conversion preference for this value to a Java class.
|
abstract Object | convertToJava(Class target) - Convert to Java object (for passing to external functions)
|
boolean | equals(Value other) - Test whether two values are equal.
|
Value | evaluate(Context context) - Evaluate the Value.
|
int | getDependencies() - Determine which aspects of the context the expression depends on.
|
protected static int | inverse(int operator) - Return the inverse of a relational operator, so that "a op b" can be
rewritten as "b inverse(op) a"
|
boolean | notEquals(Value other) - Test whether two values are not-equal.
|
protected boolean | numericCompare(int operator, double x, double y)
|
Expression | reduce(int dependencies, Context context) - Perform a partial evaluation of the expression, by eliminating specified dependencies
on the context.
|
Expression | simplify() - Simplify an expression
|
static double | stringToNumber(String s) - Static method to convert strings to numbers.
|
containsReferences , display , enumerate , evaluate , evaluateAsBoolean , evaluateAsNodeSet , evaluateAsNumber , evaluateAsString , getDataType , getDependencies , getStaticContext , indent , isContextDocumentNodeSet , make , outputStringValue , reduce , setStaticContext , simplify , usesCurrent |
ANY
public static final int ANY
BOOLEAN
public static final int BOOLEAN
Constants denoting the data types of an expression or value
NODESET
public static final int NODESET
NUMBER
public static final int NUMBER
OBJECT
public static final int OBJECT
STRING
public static final int STRING
asBoolean
public abstract boolean asBoolean()
throws XPathException
Convert the value to a Boolean
- the value converted to a Boolean
asNumber
public abstract double asNumber()
throws XPathException
Convert the value to a Number
- the value converted to a String
asString
public abstract String asString()
throws XPathException
Convert the value to a String value
- the value converted to a String
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
operator
- The comparison operator, one of Tokenizer.LE, Tokenizer.LT,
Tokenizer.GE, Tokenizer.GT, Tokenizer.EQUALS, Tokenizer.NE.
conversionPreference
public abstract int conversionPreference(Class required)
Get conversion preference for this value to a Java class. A low result
indicates higher preference.
convertToJava
public abstract Object convertToJava(Class target)
throws XPathException
Convert to Java object (for passing to external functions)
target
- The class required by the external function
- an object of the target class
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.
- a boolean giving the value of the expression, evaluated in the current context
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
- getDependencies in interface Expression
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"
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.
- a boolean giving the value of the expression, evaluated in the current context
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.
- reduce in interface Expression
dependencies
- The dependencies to be removedcontext
- The context to be used for the partial evaluation
- a new expression that does not have any of the specified
dependencies
stringToNumber
public static double stringToNumber(String s)
Static method to convert strings to numbers. Might as well go here as anywhere else.
s
- the String to be converted
- a double representing the value of the String; if it cannot be converted,
return NaN (as required by the XSL specification)