public abstract class AbstractFunction extends java.lang.Object implements Function
Constructor and Description |
---|
AbstractFunction() |
Modifier and Type | Method and Description |
---|---|
AtomicSequence |
atomize()
Atomize the item.
|
boolean |
deepEquals(Function other,
XPathContext context,
AtomicComparer comparer,
int flags)
Test whether this FunctionItem is deep-equal to another function item,
under the rules of the deep-equal function
|
boolean |
effectiveBooleanValue()
Get the effective boolean value of the function item
|
void |
export(ExpressionPresenter out)
Output information about this function item to the diagnostic explain() output
|
AnnotationList |
getAnnotations()
Get the function annotations (as defined in XQuery).
|
OperandRole[] |
getOperandRoles()
Get the roles of the arguments, for the purposes of streaming
|
UnicodeString |
getUnicodeStringValue()
Get the string value of the function
|
boolean |
isArray()
Ask whether this function is an array
|
boolean |
isMap()
Ask whether this function is a map
|
boolean |
isTrustedResultType()
Check that result type is SystemFunction or AtomicConstructorFunction
|
XPathContext |
makeNewContext(XPathContext callingContext,
ContextOriginator originator)
Prepare an XPathContext object for evaluating the function
|
void |
simplify() |
java.lang.String |
toShortString()
Provide a short string showing the contents of the item, suitable
for use in error messages
|
void |
typeCheck(ExpressionVisitor visitor,
ContextItemStaticInfo contextItemType)
Type check the function (may modify it by adding code for converting the arguments)
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getArity, getDescription, getFunctionItemType, getFunctionName, getGenre, isSequenceVariadic
getLength, getStringValue, head, isStreamed, itemAt, iterate, reduce, subsequence
asIterable, concatenate, containsNode, materialize
makeRepeatable
public OperandRole[] getOperandRoles()
getOperandRoles
in interface Function
public AtomicSequence atomize() throws XPathException
atomize
in interface Item
XPathException
- if atomization is not allowed for this kind of itempublic boolean isArray()
public boolean isMap()
public UnicodeString getUnicodeStringValue()
getUnicodeStringValue
in interface GroundedValue
getUnicodeStringValue
in interface Item
java.lang.UnsupportedOperationException
- (the string value of a function is not defined)public AnnotationList getAnnotations()
Function
getAnnotations
in interface Function
public boolean effectiveBooleanValue() throws XPathException
effectiveBooleanValue
in interface GroundedValue
XPathException
- (the EBVof a function item is not defined)public void simplify() throws XPathException
XPathException
public void typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextItemType) throws XPathException
visitor
- the expression visitor, supplies context informationcontextItemType
- the context item type at the point where the function definition appearsXPathException
- if any failure (e.g. a type checking failure) occurspublic XPathContext makeNewContext(XPathContext callingContext, ContextOriginator originator)
makeNewContext
in interface Function
callingContext
- the XPathContext of the function calling expressionoriginator
- the originator of the new contextpublic boolean deepEquals(Function other, XPathContext context, AtomicComparer comparer, int flags) throws XPathException
deepEquals
in interface Function
other
- the other function itemcontext
- the dynamic evaluation contextcomparer
- the object to perform the comparisonflags
- options for how the comparison is performedXPathException
- if the comparison cannot be performedpublic void export(ExpressionPresenter out) throws XPathException
export
in interface Function
out
- the destination for the informationXPathException
- if things go wrongpublic boolean isTrustedResultType()
isTrustedResultType
in interface Function
public java.lang.String toShortString()
Function
toShortString
in interface Function
toShortString
in interface GroundedValue
toShortString
in interface Item
Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.