Package com.saxonica.stream.adjunct

This package contains classes used to support streaming.

See:
          Description

Class Summary
AdjacentTextNodeMergerAdjunct Compile an AdjacentTextNodeMerger expression to Java source code Needed only for streaming - this class is not used in XQuery
AdjunctClassMapper For each class of expression found on the expression tree, deliver a corresponding instance of the helper class used to generate streaming code for the expression
ApplyImportsAdjunct Compile an xsl:apply-imports expression/instruction to Java source code.
ApplyTemplatesAdjunct Compile an apply-templates expression/instruction to Java source code.
AtomicSequenceConverterAdjunct Compile a AtomicSequenceConverter expression to streaming code.
AtomizerAdjunct Watch factory class for an atomizer
AverageAdjunct Generate streaming code for the avg() function.
BlockAdjunct Generate Java code for a Block, that is a sequence of expressions or instructions
CardinalityCheckerAdjunct Generate streaming code for a cardinality checker
ChooseAdjunct Streaming code to implement a conditional ("if/choose") expression
CopyAdjunct Compile an xsl:copy expression/instruction to streaming code.
CopyOfAdjunct  
CountAdjunct Generate streaming code for the count() function.
DistinctValuesAdjunct Compile a distinct-values expression/instruction to streaming code.
DocumentInstrAdjunct Compile a xsl:document instruction to streaming code.
ElementInstrAdjunct Generate streaming code for an xsl:element instruction
EmptyAdjunct Generate Java code for an empty() function call
EmptyTextNodeRemoverAdjunct Compile an AdjacentTextNodeMerger expression to Java source code Needed only for streaming - this class is not used in XQuery
ExistsAdjunct Generate streaming code for an exists() function call
FilterExpressionAdjunct Generate streaming code for a filter expression (when not part of a Watch).
ForEachAdjunct Compile an xsl:for-each instruction to streaming code.
ForkAdjunct Streaming code to implement an xsl:fork expression
GeneralComparisonAdjunct Watch factory class for a general comparison
ItemCheckerAdjunct Generate streaming code for an item checker
IterateAdjunct Compile an xsl:iterate instruction to streaming code.
LetExpressionAdjunct Compiles streaming code to implement a Let expression
MinimaxAdjunct Generate streaming code for the min() and max() functions.
NextIterationAdjunct Compile a xsl:next-intruction instruction to streaming code.
NextMatchAdjunct Compile an xsl:next-match expression/instruction to streaming code.
ResultDocumentAdjunct Handle an xsl:result-document expression/instruction for XSLT streaming capability.
SimpleNodeConstructorAdjunct Generate streaming code for an xsl:value-of, xsl:comment, xsl:processing-instruction instruction, etc
SingletonAtomizerAdjunct Watch factory class for a singleton atomizer
StreamingAdjunct This abstract class supplements an Expression with methods used at compile-time to support streaming, by generating a Watch or Feed that allows the expression to be evaluated in push mode.
StringFnAdjunct Generate Java code to implement the XPath string() function
StringJoinAdjunct Generate streaming code for the string-join() function.
SumAdjunct Generate streaming code for the avg() function.
UnsupportedOperationAdjunct Streaming code for an expression that does not support streaming
UntypedAtomicConverterAdjunct Generate streaming code for an untyped atomic converter expression
WithParamAdjunct Compile a xsl:with-param instruction to streaming code.
 

Package com.saxonica.stream.adjunct Description

This package contains classes used to support streaming. For every kind of expression that can appear in the expression tree, there is an auxiliary or adjunct class that contains the code needed to support streaming (if any).

None of these classes will be used directly by typical user applications.

The interface to these adjunct classes is defined in the abstract class StreamingAdjunct. The main methods are getWatchMaker() and getFeedMaker() which return a factory for respectively a Watch and a Feed; a Watch is used to evaluate the expression in decomposed push mode, an event at a time, while a Feed is used to evaluate it in composed push mode, an item at a time.

The association between an expression class and its corresponding adjunct is made by the AdjunctClassMapper class.

Michael H. Kay
Saxonica Limited
30 July 2010



Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.