Class 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.

    • Constructor Detail

      • PullPushTee

        public PullPushTee​(PullProvider base,
                           Receiver branch)
        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
    • Method Detail

      • getReceiver

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

        public PullEvent 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 PullEvent.END_OF_INPUT is returned at the end of the sequence.
        Throws:
        XPathException - if a dynamic error occurs