Class PullReader

  • All Implemented Interfaces:
    EventReader

    class PullReader
    extends java.lang.Object
    implements EventReader
    The PullReader is used to provide an event reader thats makes use of the XML pull API. This provides the best performance on the Google Android platform. Providing support for the XML pull API ensures that a full DOM model does not need to be build for large documents. It also ensures that line numbers are available when each event is extracted.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  PullReader.End
      The End object is used to represent the end of an element.
      private static class  PullReader.Entry
      The Entry object is used to represent an attribute within a start element.
      private static class  PullReader.Start
      The Start object is used to represent the start of an XML element.
      private static class  PullReader.Text
      The Text object is used to represent a text event.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private org.xmlpull.v1.XmlPullParser parser
      This is the XML pull parser that is used to create events.
      private EventNode peek
      This is the previous node that has been read by a peek.
    • Constructor Summary

      Constructors 
      Constructor Description
      PullReader​(org.xmlpull.v1.XmlPullParser parser)
      Constructor for the PullReader object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private PullReader.Entry attribute​(int index)
      This is used to convert the provided object to an attribute.
      private PullReader.Start build​(PullReader.Start event)
      This is used to build the attributes that are to be used to populate the start event.
      private PullReader.End end()
      This is used to create an event to signify that an element has just ended.
      EventNode next()
      This is used to take the next node from the document.
      EventNode peek()
      This is used to peek at the node from the document.
      private EventNode read()
      This is used to read the next node from the document.
      private PullReader.Start start()
      This is used to convert the next event to a start event.
      private PullReader.Text text()
      This is used to convert the next event to a text event.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • parser

        private org.xmlpull.v1.XmlPullParser parser
        This is the XML pull parser that is used to create events.
      • peek

        private EventNode peek
        This is the previous node that has been read by a peek.
    • Constructor Detail

      • PullReader

        public PullReader​(org.xmlpull.v1.XmlPullParser parser)
        Constructor for the PullReader object. This is provided an XML pull parser which has been initialized with the XML source document. Each even produced by this reader will be extracted from the provided XML pull parser.
        Parameters:
        parser - this is the parser used to create all events
    • Method Detail

      • peek

        public EventNode peek()
                       throws java.lang.Exception
        This is used to peek at the node from the document. This will scan through the document, ignoring any comments to find the next relevant XML event to acquire. Typically events will be the start and end of an element, as well as any text nodes.
        Specified by:
        peek in interface EventReader
        Returns:
        this returns the next event taken from the source XML
        Throws:
        java.lang.Exception
      • next

        public EventNode next()
                       throws java.lang.Exception
        This is used to take the next node from the document. This will scan through the document, ignoring any comments to find the next relevant XML event to acquire. Typically events will be the start and end of an element, as well as any text nodes.
        Specified by:
        next in interface EventReader
        Returns:
        this returns the next event taken from the source XML
        Throws:
        java.lang.Exception
      • read

        private EventNode read()
                        throws java.lang.Exception
        This is used to read the next node from the document. This will scan through the document, ignoring any comments to find the next relevant XML event to acquire. Typically events will be the start and end of an element, as well as any text nodes.
        Returns:
        this returns the next event taken from the document
        Throws:
        java.lang.Exception
      • text

        private PullReader.Text text()
                              throws java.lang.Exception
        This is used to convert the next event to a text event. The conversion process ensures the node can be digested by the core reader and used to provide an InputNode that can be used to represent an XML attribute within the source document.
        Returns:
        this returns the text event from the XML pull parser
        Throws:
        java.lang.Exception
      • start

        private PullReader.Start start()
                                throws java.lang.Exception
        This is used to convert the next event to a start event. The conversion process ensures the node can be digested by the core reader and used to provide an InputNode that can be used to represent an XML elements within the source document.
        Returns:
        this returns a start event created from the parser
        Throws:
        java.lang.Exception
      • build

        private PullReader.Start build​(PullReader.Start event)
                                throws java.lang.Exception
        This is used to build the attributes that are to be used to populate the start event. Populating the start event with the attributes it contains is required so that each element will contain its associated attributes. Only attributes that are not reserved will be added to the start event.
        Parameters:
        event - this is the start event that is to be populated
        Returns:
        this returns a start event with its attributes
        Throws:
        java.lang.Exception
      • attribute

        private PullReader.Entry attribute​(int index)
                                    throws java.lang.Exception
        This is used to convert the provided object to an attribute. The conversion process ensures the node can be digested by the core reader and used to provide an InputNode that can be used to represent an XML attribute within the source document.
        Parameters:
        index - this is the index of this attribute to create
        Returns:
        this returns an attribute created from the given object
        Throws:
        java.lang.Exception
      • end

        private PullReader.End end()
                            throws java.lang.Exception
        This is used to create an event to signify that an element has just ended. End events are important as they allow the core reader to determine if a node is still in context. This provides a more convenient way to use InputNode objects as they should only ever be able to extract their children.
        Returns:
        this returns an end event to signify an element close
        Throws:
        java.lang.Exception