net.sf.saxon.evpull
Class BracketedElementIterator

java.lang.Object
  extended by net.sf.saxon.evpull.BracketedElementIterator
All Implemented Interfaces:
EventIterator, PullEvent

public class BracketedElementIterator
extends Object
implements EventIterator

The class is an EventIterator that handles the events arising from an element constructor: that is, the start/end event pair for the element node, bracketing a sequence of events for the content of the element.

This class does not normalize the content (for example by merging adjacent text nodes). That is the job of the ComplexContentProcessor.

The event stream consumed by a BracketedElementIterator may contain freestanding attribute and namespace nodes. The event stream delivered by a BracketedElementIterator, however, packages all attributes and namespaces as part of the startElement event.


Constructor Summary
BracketedElementIterator(PullEvent start, EventIterator content, PullEvent end)
          Constructor
 
Method Summary
 boolean isFlatSequence()
          Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators
 PullEvent next()
          Get the next event in the sequence
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BracketedElementIterator

public BracketedElementIterator(PullEvent start,
                                EventIterator content,
                                PullEvent end)
Constructor

Parameters:
start - the StartElementEvent object
content - iterator that delivers the content of the element
end - the EndElementEvent object
Method Detail

next

public PullEvent next()
               throws XPathException
Get the next event in the sequence

Specified by:
next in interface EventIterator
Returns:
the next event, or null when the sequence is exhausted
Throws:
XPathException - if a dynamic evaluation error occurs

isFlatSequence

public boolean isFlatSequence()
Determine whether the EventIterator returns a flat sequence of events, or whether it can return nested event iterators

Specified by:
isFlatSequence in interface EventIterator
Returns:
true if the next() method is guaranteed never to return an EventIterator


Copyright (C) Michael H. Kay. All rights reserved.