Package org.simpleframework.xml.stream
Class PullReader
- java.lang.Object
-
- org.simpleframework.xml.stream.PullReader
-
- All Implemented Interfaces:
EventReader
class PullReader extends java.lang.Object implements EventReader
ThePullReaderis 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 classPullReader.EndTheEndobject is used to represent the end of an element.private static classPullReader.EntryTheEntryobject is used to represent an attribute within a start element.private static classPullReader.StartTheStartobject is used to represent the start of an XML element.private static classPullReader.TextTheTextobject is used to represent a text event.
-
Constructor Summary
Constructors Constructor Description PullReader(org.xmlpull.v1.XmlPullParser parser)Constructor for thePullReaderobject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private PullReader.Entryattribute(int index)This is used to convert the provided object to an attribute.private PullReader.Startbuild(PullReader.Start event)This is used to build the attributes that are to be used to populate the start event.private PullReader.Endend()This is used to create an event to signify that an element has just ended.EventNodenext()This is used to take the next node from the document.EventNodepeek()This is used to peek at the node from the document.private EventNoderead()This is used to read the next node from the document.private PullReader.Startstart()This is used to convert the next event to a start event.private PullReader.Texttext()This is used to convert the next event to a text event.
-
-
-
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 thePullReaderobject. 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:
peekin interfaceEventReader- 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:
nextin interfaceEventReader- 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 anInputNodethat 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 anInputNodethat 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 anInputNodethat 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 useInputNodeobjects 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
-
-