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
ThePullReader
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
TheEnd
object is used to represent the end of an element.private static class
PullReader.Entry
TheEntry
object is used to represent an attribute within a start element.private static class
PullReader.Start
TheStart
object is used to represent the start of an XML element.private static class
PullReader.Text
TheText
object is used to represent a text event.
-
Constructor Summary
Constructors Constructor Description PullReader(org.xmlpull.v1.XmlPullParser parser)
Constructor for thePullReader
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.
-
-
-
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 thePullReader
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 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:
next
in 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 anInputNode
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 anInputNode
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 anInputNode
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 useInputNode
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
-
-