net.sf.saxon.pull
Class PullPushTee

java.lang.Object
  extended by net.sf.saxon.pull.PullFilter
      extended by net.sf.saxon.pull.PullPushTee
All Implemented Interfaces:
PullProvider

public class PullPushTee
extends PullFilter

PullPushTee is a pass-through filter class that links one PullProvider to another PullProvider in a pipeline, copying all events that are read into a push pipeline, supplied in the form of a Receiver.

This class can be used to insert a schema validator into a pull pipeline, since Saxon's schema validation is push-based. It could also be used to insert a serializer into the pipeline, allowing the XML document being "pulled" to be displayed for diagnostic purposes.


Field Summary
 
Fields inherited from class net.sf.saxon.pull.PullFilter
currentEvent
 
Fields inherited from interface net.sf.saxon.pull.PullProvider
ATOMIC_VALUE, ATTRIBUTE, COMMENT, END_DOCUMENT, END_ELEMENT, END_OF_INPUT, NAMESPACE, PROCESSING_INSTRUCTION, START_DOCUMENT, START_ELEMENT, START_OF_INPUT, TEXT
 
Constructor Summary
PullPushTee(PullProvider base, Receiver branch)
          Create a PullPushTee
 
Method Summary
 Receiver getReceiver()
          Get the Receiver to which events are being tee'd.
 int next()
          Get the next event.
 
Methods inherited from class net.sf.saxon.pull.PullFilter
close, current, getAtomicValue, getAttributes, getFingerprint, getNameCode, getNamePool, getNamespaceDeclarations, getPipelineConfiguration, getSourceLocator, getStringValue, getTypeAnnotation, getUnderlyingProvider, getUnparsedEntities, setPipelineConfiguration, skipToMatchingEnd
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PullPushTee

public PullPushTee(PullProvider base,
                   Receiver branch)
            throws XPathException
Create a PullPushTee

Parameters:
base - the PullProvider to which requests are to be passed
branch - the Receiver to which all events are to be copied, as "push" events. This Receiver must already be open before use
Throws:
XPathException
Method Detail

getReceiver

public Receiver getReceiver()
Get the Receiver to which events are being tee'd.

Returns:
the Receiver

next

public int next()
         throws XPathException
Get the next event. This implementation gets the next event from the underlying PullProvider, copies it to the branch Receiver, and then returns the event to the caller.

Specified by:
next in interface PullProvider
Overrides:
next in class PullFilter
Returns:
an integer code indicating the type of event. The code PullProvider.END_OF_INPUT is returned at the end of the sequence.
Throws:
XPathException


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