| 
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
java.lang.Objectnet.sf.saxon.expr.Expression
com.saxonica.extra.StreamingCopy
public class StreamingCopy
This class performs a streaming copy of selected nodes within a document. The document
 is read in another thread using a SAX (push) parser, with a filter that selects the required
 nodes on the fly.  When such a node is encountered, a TinyBuilder is created and events for the
 subtree rooted at that node are pushed to the TinyBuilder to build this subtree. The root nodes
 of these subtrees are placed in a cyclic buffer (the Conduit where they can be read in
 pull mode and delivered as the result of a SequenceIterator. The tree for the document as a
 whole is never built.
 
This class enables expressions such as <xsl:copy-of select="doc('a.xml')//customer"/> to be processed serially without ever instantiating a.xml in memory. This is only possible when there is an explicit request to make a copy, because it is then known that there is no dependency on the node identity of nodes in a.xml.
| Field Summary | 
|---|
| Fields inherited from class net.sf.saxon.expr.Expression | 
|---|
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD | 
| Method Summary | |
|---|---|
 int | 
computeDependencies()
Compute the dependencies of an expression, as the union of the dependencies of its subexpressions.  | 
 int | 
computeSpecialProperties()
 | 
 void | 
display(int level,
        PrintStream out,
        Configuration config)
Diagnostic print of expression structure.  | 
 int | 
getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().  | 
 ItemType | 
getItemType(TypeHierarchy th)
Determine the data type of the expression, if possible.  | 
 SequenceIterator | 
iterate(XPathContext context)
Return an Iterator to iterate over the values of a sequence.  | 
 Iterator | 
iterateSubExpressions()
Get the immediate sub-expressions of this expression.  | 
 Expression | 
optimize(Optimizer opt,
         StaticContext env,
         ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.  | 
 void | 
process(XPathContext context)
Process the instruction, without returning any tail calls  | 
 boolean | 
replaceSubExpression(Expression original,
                     Expression replacement)
Replace one subexpression by a replacement subexpression  | 
 Expression | 
typeCheck(StaticContext env,
          ItemType contextItemType)
Perform type checking of an expression and its subexpressions.  | 
| Methods inherited from class net.sf.saxon.expr.Expression | 
|---|
adoptChildExpression, checkPermittedContents, computeStaticProperties, doPromotion, effectiveBooleanValue,  |