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.
bodyContext
pipelineConfiguration, systemId
Constructor and Description |
---|
IterateAction(WatchManager watchManager,
Expression expression,
ItemFeed result,
XPathContext context) |
Modifier and Type | Method and Description |
---|---|
void |
append(Item it)
Signal that a node (other than an element) that matches the selection
has been found.
|
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.
|
Receiver |
startSelectedParentNode(FleetingParentNode node,
Location locationId)
Signal that an element has been found that matches the selection that this
Watch is looking for.
|
getAction, getBodyContext, getInversion, getWatchManager, isActionConsuming, makeBodyContext, setInversion
append, dynamicError, getContext, getExpression, getResult, getTerminator, hasFailed, processItems, setExpression, setHasFailed, setTerminator
attribute, characters, comment, endDocument, endElement, getNextOutputter, namespace, open, processingInstruction, setUnparsedEntity, startContent, startDocument, startElement, startElement, usesTypeAnnotations
getConfiguration, getPipelineConfiguration, getStringReceiver, getSystemId, namespaces, setPipelineConfiguration, setSystemId
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlesAppend
public IterateAction(WatchManager watchManager, Expression expression, ItemFeed result, XPathContext context)
public void open(Terminator terminator) throws XPathException
ItemFeed
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 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 append(Item it) throws XPathException
append
in interface Receiver
append
in class ForEachAction
it
- the node that was matched.XPathException
- if the operation failspublic void endSelectedParentNode(Location locationId) throws XPathException
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 Receiver
close
in class ForEachAction
XPathException
- if a dynamic error occursCopyright (c) 2004-2020 Saxonica Limited. All rights reserved.