net.sf.saxon.event

Class SequenceOutputter

Implemented Interfaces:
Receiver, Result

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

Constructor Summary

SequenceOutputter()
Create a new SequenceOutputter
SequenceOutputter(Controller controller)
SequenceOutputter(Controller controller, int estimatedSize)

Method Summary

Item
getFirstItem()
Get the first item in the sequence that has been built
ArrayList
getList()
Get the list containing the sequence of items
ValueRepresentation
getSequence()
Get the sequence that has been built
SequenceIterator
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)
Abstract 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, hasOpenNodes, namespace, processingInstruction, startContent, startDocument, startElement, write

Methods inherited from class net.sf.saxon.event.SequenceReceiver

append, getConfiguration, getNamePool, getPipelineConfiguration, getSystemId, open, setPipelineConfiguration, setSystemId, setUnparsedEntity

Constructor Details

SequenceOutputter

public SequenceOutputter()
Create a new SequenceOutputter

SequenceOutputter

public SequenceOutputter(Controller controller)

SequenceOutputter

public SequenceOutputter(Controller controller,
                         int estimatedSize)

Method Details

getFirstItem

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

getList

public ArrayList getList()
Get the list containing the sequence of items

getSequence

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

iterate

public SequenceIterator iterate()
Get an iterator over the sequence of items that has been constructed

popLastItem

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

reset

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

write

public void write(Item item)
Abstract method to be supplied by subclasses: output one item in the sequence.
Overrides:
write in interface SequenceWriter