Package com.saxonica.expr
Class ObjectLookupExpression
- java.lang.Object
-
- net.sf.saxon.expr.Expression
-
- net.sf.saxon.expr.BinaryExpression
-
- net.sf.saxon.expr.LookupExpression
-
- com.saxonica.expr.ObjectLookupExpression
-
- All Implemented Interfaces:
ExportAgent,Locatable,IdentityComparable,Traceable
public class ObjectLookupExpression extends LookupExpression
Saxon extension: a lookup expression of the form X?Y where X is a Java external object and Y is a method defined on that object
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.expr.LookupExpression
isArrayLookup, isMapLookup, isSingleContainer, isSingleEntry
-
Fields inherited from class net.sf.saxon.expr.BinaryExpression
operator
-
Fields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, UPDATE_METHOD, WATCH_METHOD
-
-
Constructor Summary
Constructors Constructor Description ObjectLookupExpression(Expression start, Expression step)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcomputeCardinality()Determine the static cardinality of the expressionLookupExpressioncopy(RebindingMap rebindings)Copy an expression.ItemTypegetItemType()Determine the data type of the items returned by this expressionSequenceIteratoriterate(XPathContext context)Iterate the lookup-expression in a given contextExpressiontypeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo)Type-check the expression-
Methods inherited from class net.sf.saxon.expr.LookupExpression
computeHashCode, equals, export, getCost, getExpressionName, getImplementationMethod, getOperandRole, getStaticUType, mustBeArrayOrMap, optimize, toString
-
Methods inherited from class net.sf.saxon.expr.BinaryExpression
computeSpecialProperties, displayOperator, explainExtraAttributes, getLhs, getLhsExpression, getOperator, getRhs, getRhsExpression, isAssociative, isCommutative, isInverse, operands, setFlattened, setLhsExpression, setRhsExpression, tag, toShortString
-
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getConfiguration, getDependencies, getEvaluationMethod, getExtraProperty, getIntegerBounds, getInterpretedExpression, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, markTailFunctionCalls, operandList, operandSparseList, optimizeChildren, prepareForStreaming, process, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, suppressValidation, toPattern, typeCheckChildren, typeError, unordered, verifyParentPointers
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
-
-
-
Constructor Detail
-
ObjectLookupExpression
public ObjectLookupExpression(Expression start, Expression step)
-
-
Method Detail
-
getItemType
public final ItemType getItemType()
Description copied from class:LookupExpressionDetermine the data type of the items returned by this expression- Overrides:
getItemTypein classLookupExpression- Returns:
- the type of the expression, as far as this is known. Prior to type-checking,
the method returns
AnyItemType
-
typeCheck
public Expression typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException
Description copied from class:LookupExpressionType-check the expression- Overrides:
typeCheckin classLookupExpression- Parameters:
visitor- an expression visitorcontextInfo- Information available statically about the context item: whether it is (possibly) absent; its static type; its streaming posture.- Returns:
- the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations
- Throws:
XPathException- if an error is discovered during this phase (typically a type error)
-
copy
public LookupExpression copy(RebindingMap rebindings)
Copy an expression. This makes a deep copy.- Overrides:
copyin classLookupExpression- Parameters:
rebindings- a mutable list of (old binding, new binding) pairs that is used to update the bindings held in any local variable references that are copied.- Returns:
- the copy of the original expression
-
computeCardinality
protected int computeCardinality()
Determine the static cardinality of the expression- Overrides:
computeCardinalityin classLookupExpression- Returns:
- the computed cardinality, as one of the values
StaticProperty.ALLOWS_ZERO_OR_ONE,StaticProperty.EXACTLY_ONE,StaticProperty.ALLOWS_ONE_OR_MORE,StaticProperty.ALLOWS_ZERO_OR_MORE. May also returnStaticProperty.ALLOWS_ZEROif the result is known to be an empty sequence, orStaticProperty.ALLOWS_MANYif if is known to return a sequence of length two or more.
-
iterate
public SequenceIterator iterate(XPathContext context) throws XPathException
Iterate the lookup-expression in a given context- Overrides:
iteratein classLookupExpression- Parameters:
context- the evaluation context- Returns:
- a SequenceIterator that can be used to iterate over the result of the expression
- Throws:
XPathException- if any dynamic error occurs evaluating the expression
-
-