|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.saxonica.validate.AbstractWatch
com.saxonica.stream.watch.ComposingWatch
com.saxonica.stream.watch.ForEachComposingWatch
public class ForEachComposingWatch
This watch implements xsl:for-each in streaming mode, in the case where the select expression is a pattern that selects events from the streamed input, but the body of the for-each does no further downwards navigation, and delivers composed items to an ItemFeed acting as the parent expression of the for-each. It watches for the nodes selected by the xsl:for-each instruction; when such a node is encountered, it evaluates the body expression and passes its result to the parent feed. 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.
| Constructor Summary | |
|---|---|
ForEachComposingWatch(ForEach expression,
Feed result,
Stack<XPathContext> contextStack)
|
|
| Method Summary | |
|---|---|
void |
close()
The close() method is called immediately before the Watch is destroyed, that is, when the element whose declaration scopes the constraint implemented by this Watch goes out of scope. |
void |
endSelectedParentNode(int locationId)
Signal that the endElement event has occurred for the element whose startElement event caused the Watch to be activated. |
void |
notifySelectedLeafNode(FleetingNode node,
int locationId)
Signal that a node (other than an element) that matches the selection has been found. |
void |
open()
Open the watch. |
Receiver |
startSelectedParentNode(FleetingNode node,
int locationId)
Signal that an element has been found that matches the selection that this Watch is looking for. |
| Methods inherited from class com.saxonica.stream.watch.ComposingWatch |
|---|
getContext, getContextStack, getResult |
| Methods inherited from class com.saxonica.validate.AbstractWatch |
|---|
getAnchorNode, getNamespaceResolver, getPipelineConfiguration, getSelection, setAnchorNode, setNamespaceResolver, setPipelineConfiguration, setSelection |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ForEachComposingWatch(ForEach expression,
Feed result,
Stack<XPathContext> contextStack)
| Method Detail |
|---|
public void open()
throws XPathException
ComposingWatch
open in interface Watchopen in class ComposingWatchXPathException
public Receiver startSelectedParentNode(FleetingNode node,
int locationId)
throws XPathException
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
XPathException
public void notifySelectedLeafNode(FleetingNode node,
int locationId)
throws XPathException
notifySelectedLeafNode in interface WatchnotifySelectedLeafNode in class AbstractWatchnode - the node that was matched.locationId -
XPathException
public void endSelectedParentNode(int locationId)
throws XPathException
locationId - the location of the element
ValidationException - May be raised if the constraint implemented by this
Watch is violated @param locationId
XPathException - May be raised if a constraint implemented by this
Watch is violated
public void close()
throws XPathException
ComposingWatch
close in interface Watchclose in class ComposingWatchXPathException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||