## net.sf.saxon.pull
Class PullPushTee

    java.lang.Object
      net.sf.saxon.pull.PullFilter
          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.