net.sf.saxon.expr
Class UnaryExpression
- EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator
public abstract class UnaryExpression
Unary Expression: an expression taking a single operand expression
addToPathMap , adoptChildExpression , checkPermittedContents , computeCardinality , computeDependencies , computeSpecialProperties , computeStaticProperties , copy , display , doPromotion , dynamicError , effectiveBooleanValue , evaluateAsString , evaluateItem , explain , explain , findParentOf , getCardinality , getColumnNumber , getConstructType , getContainer , getDependencies , getExecutable , getHostLanguage , getImplementationMethod , getInstructionInfo , getIntrinsicDependencies , getItemType , getLineNumber , getLocationId , getLocationProvider , getPublicId , getSlotsUsed , getSpecialProperties , getSystemId , hasLoopingSubexpression , implementsStaticTypeCheck , iterate , iterateEvents , iterateSubExpressions , markTailFunctionCalls , optimize , process , promote , replaceSubExpression , resetLocalStaticProperties , setContainer , setFiltered , setFlattened , setLocationId , simplify , staticTypeCheck , suppressValidation , toString , typeCheck , typeError |
UnaryExpression
public UnaryExpression(Expression p0)
computeCardinality
public int computeCardinality()
Determine the static cardinality. Default implementation returns the cardinality of the operand
- computeCardinality in interface Expression
computeSpecialProperties
public int computeSpecialProperties()
Get the static properties of this expression (other than its type). The result is
bit-signficant. These properties are used for optimizations. In general, if
property bit is set, it is true, but if it is unset, the value is unknown.
- computeSpecialProperties in interface Expression
displayExpressionName
protected String displayExpressionName()
Return the element name to use in the expression tree
displayOperator
protected String displayOperator(Configuration config)
Give a string representation of the operator for use in diagnostics
- the operator, as a string
equals
public boolean equals(Object other)
Is this expression the same as another expression?
explain
public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree
is written to the supplied output destination.
- explain in interface Expression
getBaseExpression
public Expression getBaseExpression()
getItemType
public ItemType getItemType(TypeHierarchy th)
Determine the data type of the expression, if possible. The default
implementation for unary expressions returns the item type of the operand
- getItemType in interface Expression
th
- the type hierarchy cache
- the item type of the items in the result sequence, insofar as this
is known statically.
hashCode
public int hashCode()
get HashCode for comparing two expressions. Note that this hashcode gives the same
result for (A op B) and for (B op A), whether or not the operator is commutative.
iterateSubExpressions
public Iterator iterateSubExpressions()
Get the immediate subexpressions of this expression
- iterateSubExpressions in interface Expression
optimize
public Expression optimize(ExpressionVisitor visitor,
ItemType contextItemType)
throws XPathException
Perform optimisation of an expression and its subexpressions.
This method is called after all references to functions and variables have been resolved
to the declaration of the function or variable, and after all type checking has been done.
- optimize in interface Expression
visitor
- an expression visitorcontextItemType
- the static type of "." at the point where this expression is invoked.
The parameter is set to null if it is known statically that the context item will be undefined.
If the type of the context item is not known statically, the argument is set to
Type.ITEM_TYPE
- the original expression, rewritten if appropriate to optimize execution
XPathException
- if an error is discovered during this phase
(typically a type error)
replaceSubExpression
public boolean replaceSubExpression(Expression original,
Expression replacement)
Replace one subexpression by a replacement subexpression
- replaceSubExpression in interface Expression
original
- the original subexpressionreplacement
- the replacement subexpression
- true if the original subexpression is found
toString
public String toString()
The toString() method for an expression attempts to give a representation of the expression
in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath.
In the case of XSLT instructions, the toString() method gives an abstracted view of the syntax
- toString in interface Expression