net.sf.saxon.event
Class SequenceOutputter

java.lang.Object
  extended by net.sf.saxon.event.SequenceReceiver
      extended by net.sf.saxon.event.SequenceWriter
          extended by net.sf.saxon.event.SequenceOutputter
All Implemented Interfaces:
Result, Receiver

public final class SequenceOutputter
extends SequenceWriter

This outputter is used when writing a sequence of atomic values and nodes, that is, when xsl:variable is used with content and an "as" attribute. The outputter builds the sequence and provides access to it. (It isn't really an outputter at all, it doesn't pass the events to anyone, it merely constructs the sequence in memory and provides access to it). Note that the event sequence can include calls such as startElement and endElement that require trees to be built. If nodes such as attributes and text nodes are received while an element is being constructed, the nodes are added to the tree. Otherwise, "orphan" nodes (nodes with no parent) are created and added directly to the sequence.

This class is not used to build temporary trees. For that, the ComplexContentOutputter is used.

Author:
Michael H. Kay

Field Summary
 
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemId
 
Fields inherited from interface javax.xml.transform.Result
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
 
Constructor Summary
SequenceOutputter(PipelineConfiguration pipe)
          Create a new SequenceOutputter
SequenceOutputter(PipelineConfiguration pipe, Controller controller)
           
SequenceOutputter(PipelineConfiguration pipe, Controller controller, int estimatedSize)
           
 
Method Summary
static SequenceOutputter allocateSequenceOutputter(XPathContext context, int hostLang)
          Allocate a SequenceOutputter.
 Item getFirstItem()
          Get the first item in the sequence that has been built
 List<Item> getList()
          Get the list containing the sequence of items
 ValueRepresentation<Item> getSequence()
          Get the sequence that has been built
 SequenceIterator<? extends Item> iterate()
          Get an iterator over the sequence of items that has been constructed
 Item popLastItem()
          Get the last item in the sequence that has been built, and remove it
 void reset()
          Clear the contents of the SequenceOutputter and make it available for reuse
 void write(Item item)
          Method to be supplied by subclasses: output one item in the sequence.
 
Methods inherited from class net.sf.saxon.event.SequenceWriter
adviseReuse, append, attribute, characters, close, comment, endDocument, endElement, namespace, processingInstruction, startContent, startDocument, startElement, usesTypeAnnotations
 
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, getConfiguration, getNamePool, getPipelineConfiguration, getSystemId, open, setPipelineConfiguration, setSystemId, setUnparsedEntity
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SequenceOutputter

public SequenceOutputter(PipelineConfiguration pipe)
Create a new SequenceOutputter

Parameters:
pipe - the pipeline configuration

SequenceOutputter

public SequenceOutputter(PipelineConfiguration pipe,
                         Controller controller,
                         int estimatedSize)

SequenceOutputter

public SequenceOutputter(PipelineConfiguration pipe,
                         Controller controller)
Method Detail

allocateSequenceOutputter

public static SequenceOutputter allocateSequenceOutputter(XPathContext context,
                                                          int hostLang)
Allocate a SequenceOutputter. Used from generated bytecode.

Parameters:
context - dynamic XPath context
hostLang - host language (XSLT/XQuery)
Returns:
the allocated SequenceOutputter
See Also:
CompilerService

reset

public void reset()
Clear the contents of the SequenceOutputter and make it available for reuse


write

public void write(Item item)
Method to be supplied by subclasses: output one item in the sequence.

Specified by:
write in class SequenceWriter
Parameters:
item - the item to be written to the sequence

getSequence

public ValueRepresentation<Item> getSequence()
Get the sequence that has been built

Returns:
the value (sequence of items) that have been written to this SequenceOutputter

iterate

public SequenceIterator<? extends Item> iterate()
Get an iterator over the sequence of items that has been constructed

Returns:
an iterator over the items that have been written to this SequenceOutputter

getList

public List<Item> getList()
Get the list containing the sequence of items

Returns:
the list of items that have been written to this SequenceOutputter

getFirstItem

public Item getFirstItem()
Get the first item in the sequence that has been built

Returns:
the first item in the list of items that have been written to this SequenceOutputter; or null if the list is empty.

popLastItem

public Item popLastItem()
Get the last item in the sequence that has been built, and remove it

Returns:
the last item written


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