Package com.icl.saxon.functions
Class Key
- java.lang.Object
-
- com.icl.saxon.expr.Expression
-
- com.icl.saxon.expr.Function
-
- com.icl.saxon.functions.Key
-
public class Key extends Function
-
-
Field Summary
-
Fields inherited from class com.icl.saxon.expr.Expression
staticContext
-
-
Constructor Summary
Constructors Constructor Description Key()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NodeEnumeration
enumerate(Context context, boolean sorted)
Enumerate the expressionValue
evaluate(Context context)
Evaluate the expressionint
getDataType()
Determine the data type of the expressionint
getDependencies()
Determine which aspects of the context the expression depends on.java.lang.String
getName()
Get the name of the function.boolean
isContextDocumentNodeSet()
Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node.Expression
reduce(int dep, Context context)
Remove specified dependencies.Expression
simplify()
Simplify and validate-
Methods inherited from class com.icl.saxon.expr.Function
addArgument, checkArgumentCount, display, getNumberOfArguments
-
Methods inherited from class com.icl.saxon.expr.Expression
containsReferences, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getStaticContext, indent, make, outputStringValue, setStaticContext, usesCurrent
-
-
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from class:Function
Get the name of the function. This method must be implemented in all subclasses.
-
getDataType
public int getDataType()
Determine the data type of the expression- Specified by:
getDataType
in classExpression
- Returns:
- Value.NODESET
-
isContextDocumentNodeSet
public boolean isContextDocumentNodeSet()
Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node. Used for optimization.- Overrides:
isContextDocumentNodeSet
in classExpression
-
simplify
public Expression simplify() throws XPathException
Simplify and validate- Overrides:
simplify
in classExpression
- Returns:
- the simplified expression
- Throws:
XPathException
-
evaluate
public Value evaluate(Context context) throws XPathException
Evaluate the expression- Specified by:
evaluate
in classExpression
- Parameters:
context
- The context in which the expression is to be evaluated- Returns:
- the value of the expression, evaluated in the current context
- Throws:
XPathException
-
enumerate
public NodeEnumeration enumerate(Context context, boolean sorted) throws XPathException
Enumerate the expression- Overrides:
enumerate
in classExpression
- Parameters:
context
- The context in which the expression is to be evaluatedsorted
- Indicates whether the nodes are required in document order. If this is false, they may come in any order, but there will be no duplicates.- Throws:
XPathException
- when the expression does not return a nodeset.
-
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 classExpression
-
reduce
public Expression reduce(int dep, Context context) throws XPathException
Remove specified dependencies.- Specified by:
reduce
in classExpression
- Parameters:
dep
- The dependencies to be removed, e.g. Context.VARIABLEScontext
- The context to be used for the partial evaluation- Returns:
- a new expression (or Value) that does not have any of the specified dependencies
- Throws:
XPathException
-
-