Package net.sf.saxon.expr.instruct
Class BreakInstr
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.instruct.Instruction
net.sf.saxon.expr.instruct.BreakInstr
- All Implemented Interfaces:
ExportAgent,Locatable,TailCallLoop.TailCallInfo,IdentityComparable,Traceable
A compiled xsl:break instruction. The effect of executing this instruction is to register with the
dynamic context that a tail call on a pseudo-function break() has been made; the enclosing xsl:iterate
loop detects this tail call request and uses it as a signal to terminate execution of the loop.
-
Nested Class Summary
Nested Classes -
Field Summary
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 -
Method Summary
Modifier and TypeMethodDescriptioncopy(RebindingMap rebindings) Copy an expression.voidDiagnostic print of expression structure.Make an elaborator for this expressionGet a name identifying the kind of expression, in terms meaningful to a user.intGet the namecode of the instruction for use in diagnosticsbooleanisLiftable(boolean forStreaming) Ask whether the expression can be lifted out of a loop, assuming it has no dependencies on the controlling variable/focus of the loopvoidmarkContext(XPathContext context) booleanAsk whether this instruction potentially creates and returns new nodes.operands()Get the immediate sub-expressions of this expression, with information about the relationship of each expression to its parent expression.Methods inherited from class net.sf.saxon.expr.instruct.Instruction
alwaysCreatesNewNodes, assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, dynamicError, evaluateAsString, evaluateItem, getImplementationMethod, getItemType, getNetCost, getSourceLocator, isInstruction, isXSLT, iterate, process, someOperandCreatesNewNodesMethods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeHashCode, computeStaticProperties, dispatchTailCall, dynamicError, effectiveBooleanValue, equals, explain, getCardinality, getConfiguration, getCost, getDependencies, getEvaluationMethod, getExtraProperty, getIntegerBounds, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, makeElaborator, markTailFunctionCalls, operandList, operandSparseList, optimize, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, supportsLazyEvaluation, suppressValidation, toPattern, toShortString, toString, typeCheck, typeCheckChildren, typeError, unordered, verifyParentPointers, withLocationMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
Constructor Details
-
BreakInstr
public BreakInstr()Create the instruction
-
-
Method Details
-
operands
Description copied from class:ExpressionGet the immediate sub-expressions of this expression, with information about the relationship of each expression to its parent expression.If the expression is a Callable, then it is required that the order of the operands returned by this function is the same as the order of arguments supplied to the corresponding call() method.
- Specified by:
operandsin classInstruction- Returns:
- an iterator containing the sub-expressions of this expression
-
copy
Description copied from class:ExpressionCopy an expression. This makes a deep copy.- Specified by:
copyin classExpression- 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
-
mayCreateNewNodes
public boolean mayCreateNewNodes()Description copied from class:InstructionAsk whether this instruction potentially creates and returns new nodes. Returns true if some branches or dynamic conditions result in new nodes being created. This implementation returns a default value of false- Overrides:
mayCreateNewNodesin classInstruction- Returns:
- true if the instruction creates new nodes under some input conditions (or if it can't be proved that it doesn't)
-
isLiftable
public boolean isLiftable(boolean forStreaming) Ask whether the expression can be lifted out of a loop, assuming it has no dependencies on the controlling variable/focus of the loop- Overrides:
isLiftablein classExpression- Parameters:
forStreaming- true if we are optimizing for streamed evaluation- Returns:
- for a
BreakInstr, always false
-
getInstructionNameCode
public int getInstructionNameCode()Get the namecode of the instruction for use in diagnostics- Overrides:
getInstructionNameCodein classInstruction- Returns:
- a code identifying the instruction: typically but not always the fingerprint of a name in the XSLT namespace
-
markContext
-
getExpressionName
Description copied from class:InstructionGet a name identifying the kind of expression, in terms meaningful to a user.- Overrides:
getExpressionNamein classInstruction- Returns:
- a name identifying the kind of expression, in terms meaningful to a user. The name will always be in the form of a lexical XML QName, and should match the name used in explain() output displaying the expression.
-
export
Description copied from class:ExpressionDiagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
exportin interfaceExportAgent- Specified by:
exportin classExpression- Parameters:
out- the expression presenter used to display the structure- Throws:
XPathException- if the export fails, for example if an expression is found that won't work in the target environment.
-
getElaborator
Description copied from class:ExpressionMake an elaborator for this expression- Overrides:
getElaboratorin classExpression- Returns:
- an appropriate
Elaborator
-