public abstract class FileSourceXML extends SourceBase implements FileSource, javax.xml.stream.XMLStreamConstants
javax.xml.streams
). One who want to define a new xml-based fiel
source has to define actions after the document start and before the document
end. The nextEvents()
, called between start and end, has to be
defined too.Modifier and Type | Class and Description |
---|---|
protected class |
FileSourceXML.Parser
Base for parsers, providing some usefull features.
|
SourceBase.ElementType
Modifier and Type | Field and Description |
---|---|
private java.util.Stack<javax.xml.stream.events.XMLEvent> |
events |
protected javax.xml.stream.XMLEventReader |
reader
XML events stream.
|
attrSinks, eltsSinks, eventProcessing, eventQueue, sourceId, sourceTime
Modifier | Constructor and Description |
---|---|
protected |
FileSourceXML() |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
afterStartDocument()
Called after the event
javax.xml.stream.events.XMLEvent.START_DOCUMENT has been
received. |
protected abstract void |
beforeEndDocument()
Called before trying to receive the events
javax.xml.stream.event.END_DOCUMENT . |
void |
begin(java.io.InputStream stream)
Begin reading the file stopping as soon as possible.
|
void |
begin(java.io.Reader reader)
Begin reading the file stopping as soon as possible.
|
void |
begin(java.lang.String fileName)
Begin reading the file stopping as soon as possible.
|
void |
begin(java.net.URL url)
Begin reading the file stopping as soon as possible.
|
protected void |
checkValid(javax.xml.stream.events.XMLEvent e,
int type,
java.lang.String name)
Check is the event has valid type and name.
|
protected void |
closeStream()
Close the current opened stream.
|
void |
end()
Finish the reading process (even if
FileSource.nextEvents() or
FileSource.nextStep() did not returned false). |
protected javax.xml.stream.events.XMLEvent |
getNextEvent()
Get a new event from the stream.
|
private java.lang.String |
gotWhat(int type,
java.lang.String v) |
private java.lang.String |
gotWhat(javax.xml.stream.events.XMLEvent e) |
protected boolean |
isEvent(javax.xml.stream.events.XMLEvent e,
int type,
java.lang.String name)
Check is an event has an expected type and name.
|
protected javax.xml.stream.XMLStreamException |
newParseError(javax.xml.stream.events.XMLEvent e,
java.lang.String msg,
java.lang.Object... args)
Generate a new parse exception.
|
abstract boolean |
nextEvents()
Try to process one graph event, or as few as possible, if more must be
read at once.
|
boolean |
nextStep()
Try to process all the events occurring during one time step.
|
protected void |
openStream(java.io.Reader stream)
Open a new xml events stream.
|
protected void |
pushback(javax.xml.stream.events.XMLEvent e)
Pushback an event in the stream.
|
void |
readAll(java.io.InputStream stream)
Read the whole file in one big non-interruptible operation.
|
void |
readAll(java.io.Reader reader)
Read the whole file in one big non-interruptible operation.
|
void |
readAll(java.lang.String fileName)
Read the whole file in one big non-interruptible operation.
|
void |
readAll(java.net.URL url)
Read the whole file in one big non-interruptible operation.
|
private void |
skipWhiteSpaces() |
protected java.lang.String |
toConstantName(javax.xml.stream.events.Attribute a)
Convert an attribute to a valid constant name.
|
protected java.lang.String |
toConstantName(java.lang.String value)
Convert a string to a valid constant name.
|
addAttributeSink, addElementSink, addSink, attributeSinks, clearAttributeSinks, clearElementSinks, clearSinks, elementSinks, manageEvents, removeAttributeSink, removeElementSink, removeSink, sendAttributeChangedEvent, sendAttributeChangedEvent, sendEdgeAdded, sendEdgeAdded, sendEdgeAttributeAdded, sendEdgeAttributeAdded, sendEdgeAttributeChanged, sendEdgeAttributeChanged, sendEdgeAttributeRemoved, sendEdgeAttributeRemoved, sendEdgeRemoved, sendEdgeRemoved, sendGraphAttributeAdded, sendGraphAttributeAdded, sendGraphAttributeChanged, sendGraphAttributeChanged, sendGraphAttributeRemoved, sendGraphAttributeRemoved, sendGraphCleared, sendGraphCleared, sendNodeAdded, sendNodeAdded, sendNodeAttributeAdded, sendNodeAttributeAdded, sendNodeAttributeChanged, sendNodeAttributeChanged, sendNodeAttributeRemoved, sendNodeAttributeRemoved, sendNodeRemoved, sendNodeRemoved, sendStepBegins, sendStepBegins
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAttributeSink, addElementSink, addSink, clearAttributeSinks, clearElementSinks, clearSinks, removeAttributeSink, removeElementSink, removeSink
protected javax.xml.stream.XMLEventReader reader
getNextEvent()
.private java.util.Stack<javax.xml.stream.events.XMLEvent> events
public void readAll(java.lang.String fileName) throws java.io.IOException
FileSource
readAll
in interface FileSource
fileName
- Name of the file to read.java.io.IOException
- If an I/O error occurs while reading.public void readAll(java.net.URL url) throws java.io.IOException
FileSource
readAll
in interface FileSource
url
- The URL of the file to read.java.io.IOException
- If an I/O error occurs while reading.public void readAll(java.io.InputStream stream) throws java.io.IOException
FileSource
readAll
in interface FileSource
stream
- The input stream to use for reading.java.io.IOException
- If an I/O error occurs while reading.public void readAll(java.io.Reader reader) throws java.io.IOException
FileSource
readAll
in interface FileSource
reader
- The reader to use.java.io.IOException
- If an I/O error occurs while reading.public void begin(java.lang.String fileName) throws java.io.IOException
FileSource
FileSource.nextEvents()
or
FileSource.nextStep()
. Once begin() has been called, you must finish the
reading process using FileSource.end()
. You cannot call begin() twice
without having called FileSource.end()
in between.begin
in interface FileSource
fileName
- Name of the file to read.java.io.IOException
- If an I/O error occurs while reading.public void begin(java.net.URL url) throws java.io.IOException
FileSource
FileSource.nextEvents()
or
FileSource.nextStep()
. Once begin() has been called, you must finish the
reading process using FileSource.end()
. You cannot call begin() twice
without having called FileSource.end()
in between.begin
in interface FileSource
url
- The URL of the file to read.java.io.IOException
- If an I/O error occurs while reading.public void begin(java.io.InputStream stream) throws java.io.IOException
FileSource
FileSource.nextEvents()
or
FileSource.nextStep()
. Once begin() has been called, you must finish the
reading process using FileSource.end()
. You cannot call begin() twice
without having called FileSource.end()
in between.begin
in interface FileSource
stream
- The input stream to use for reading.java.io.IOException
- If an I/O error occurs while reading.public void begin(java.io.Reader reader) throws java.io.IOException
FileSource
FileSource.nextEvents()
or
FileSource.nextStep()
. Once begin() has been called, you must finish the
reading process using FileSource.end()
. You cannot call begin() twice
without having called FileSource.end()
in between.begin
in interface FileSource
reader
- The file reader to use.java.io.IOException
- If an I/O error occurs while reading.protected abstract void afterStartDocument() throws java.io.IOException, javax.xml.stream.XMLStreamException
javax.xml.stream.events.XMLEvent.START_DOCUMENT
has been
received.java.io.IOException
javax.xml.stream.XMLStreamException
protected abstract void beforeEndDocument() throws java.io.IOException, javax.xml.stream.XMLStreamException
javax.xml.stream.event.END_DOCUMENT
.java.io.IOException
javax.xml.stream.XMLStreamException
public abstract boolean nextEvents() throws java.io.IOException
FileSource
FileSource.begin(InputStream)
or FileSource.begin(String)
before. This method
return true while there are still events to read.nextEvents
in interface FileSource
java.io.IOException
- If an I/O error occurs while reading.public boolean nextStep() throws java.io.IOException
FileSource
nextStep
in interface FileSource
java.io.IOException
- If an I/O error occurs while reading.public void end() throws java.io.IOException
FileSource
FileSource.nextEvents()
or
FileSource.nextStep()
did not returned false). You must call this method
after reading.end
in interface FileSource
java.io.IOException
- If an I/O error occurs while closing the file.protected javax.xml.stream.events.XMLEvent getNextEvent() throws java.io.IOException, javax.xml.stream.XMLStreamException
pushback(XMLEvent)
method to work.java.io.IOException
javax.xml.stream.XMLStreamException
protected void pushback(javax.xml.stream.events.XMLEvent e)
e
- the eventprotected javax.xml.stream.XMLStreamException newParseError(javax.xml.stream.events.XMLEvent e, java.lang.String msg, java.lang.Object... args)
e
- event producing an errormsg
- message to put in the exceptionargs
- arguments of the messageprotected boolean isEvent(javax.xml.stream.events.XMLEvent e, int type, java.lang.String name)
e
- event to checktype
- expected typename
- expected nameprotected void checkValid(javax.xml.stream.events.XMLEvent e, int type, java.lang.String name) throws javax.xml.stream.XMLStreamException
e
- event to checktype
- expected typename
- expected namejavax.xml.stream.XMLStreamException
- if event has invalid type or nameprivate java.lang.String gotWhat(javax.xml.stream.events.XMLEvent e)
private java.lang.String gotWhat(int type, java.lang.String v)
private void skipWhiteSpaces() throws java.io.IOException, javax.xml.stream.XMLStreamException
java.io.IOException
javax.xml.stream.XMLStreamException
protected void openStream(java.io.Reader stream) throws java.io.IOException
stream
- java.io.IOException
protected void closeStream() throws java.io.IOException
java.io.IOException
protected java.lang.String toConstantName(javax.xml.stream.events.Attribute a)
a
- toConstantName(String)
protected java.lang.String toConstantName(java.lang.String value)
value
-