public class IterateAction extends ForEachAction
The watch is capable of handling a select expression that selects non-peer nodes (that is, one selected node that is a descendant of another). A top-level selected node is processed directly to the output receiver; a nested node is processed to create a temporary result tree, which is then appended to the output sequence when the processing of the outer selected node is complete.
ForEachAction.Activation
bodyContext
Constructor and Description |
---|
IterateAction(WatchManager watchManager,
Expression expression,
Feed result,
XPathContext context) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Finish evaluating the expression.
|
void |
endSelectedParentNode(Location locationId)
Signal that the endElement event has occurred for the element whose startElement
event caused the Watch to be activated.
|
void |
open(Terminator terminator)
Start evaluating the expression.
|
void |
processItem(Item<?> it)
Signal that a node (other than an element) that matches the selection
has been found.
|
Receiver |
startSelectedParentNode(FleetingParentNode node,
Location locationId)
Signal that an element has been found that matches the selection that this
Watch is looking for.
|
getAction, getActivationStack, getBodyContext, getInversion, getReceiver, getValuesAwaitingOutput, getWatchManager, isActionConsuming, makeBodyContext, setInversion
dynamicError, getContext, getExpression, getPipelineConfiguration, getResult, getTerminator, hasFailed, processItems, setExpression, setHasFailed, setPipelineConfiguration, setTerminator
public IterateAction(WatchManager watchManager, Expression expression, Feed result, XPathContext context)
public void open(Terminator terminator) throws XPathException
ItemFeed
open
in interface Feed
open
in class ForEachAction
terminator
- used to achieve early exitXPathException
- if a dynamic error occurspublic Receiver startSelectedParentNode(FleetingParentNode node, Location locationId) throws XPathException
startSelectedParentNode
in interface Feed
startSelectedParentNode
in class ForEachAction
node
- the element or document node whose start event has been matchedlocationId
- the location associated with the element or document node (may be
the location of the instruction that created it)ValidationException
- May be raised if the constraint implemented by this
Watch is violated @param locationId the location of the node in the source, or of the instruction that created itXPathException
- May be raised if a dynamic error occurspublic void processItem(Item<?> it) throws XPathException
processItem
in interface Feed
processItem
in class ForEachAction
it
- the node that was matched.XPathException
- May be raised if a dynamic error occurspublic void endSelectedParentNode(Location locationId) throws XPathException
endSelectedParentNode
in interface Feed
endSelectedParentNode
in class ForEachAction
locationId
- the location of the node in the source, or of the instruction that created itValidationException
- May be raised if the constraint implemented by this
Watch is violated @param locationId the location of the node in the source, or of the instruction that created itXPathException
- May be raised if a constraint implemented by this
Watch is violatedpublic void close() throws XPathException
ItemFeed
close
in interface Feed
close
in class ForEachAction
XPathException
- if a dynamic error occursCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.