org.graphstream.stream.file
Class FileSourceBase

java.lang.Object
  extended by org.graphstream.stream.SourceBase
      extended by org.graphstream.stream.file.FileSourceBase
All Implemented Interfaces:
FileSource, Source
Direct Known Subclasses:
FileSourceDGS1And2, FileSourceEdge, FileSourceLGL, FileSourceNCol, OldFileSourceDGS

public abstract class FileSourceBase
extends SourceBase
implements FileSource

Base for various graph file input.

This class is a piece of crap. However it is still used in many places... :-( TODO use a parser generator to replace it.

This class provides parsing utilities to help the creation of new graph readers/parsers. It handles a stack of input files that allow to easily implements "includes" (that is interrupting the parsing of a file to input another one). It wraps stream tokenizers allowing to eat or get specific token types easily.

It is well suited for graph formats using text (not binary), but not for XML based files where a real XML parser would probably be better.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.graphstream.stream.SourceBase
SourceBase.ElementType
 
Method Summary
 void addAttributeClass(String attribute, String attribute_class)
          Declare that when attribute is found, the corresponding attribute_class must be instantiated and inserted in the current element being parsed.
 void begin(InputStream stream)
          Begin reading the file stopping as soon as possible.
 void begin(Reader reader)
          Begin reading the file stopping as soon as possible.
 void begin(String filename)
          Begin reading the file stopping as soon as possible.
 void begin(URL url)
          Begin reading the file stopping as soon as possible.
 void end()
          Finish the reading process (even if FileSource.nextEvents() or FileSource.nextStep() did not returned false).
abstract  boolean nextEvents()
          Try to process one graph event, or as few as possible, if more must be read at once.
 void readAll(InputStream stream)
          Read the whole file in one big non-interruptible operation.
 void readAll(Reader reader)
          Read the whole file in one big non-interruptible operation.
 void readAll(String filename)
          Read the whole file in one big non-interruptible operation.
 void readAll(URL url)
          Read the whole file in one big non-interruptible operation.
 
Methods inherited from class org.graphstream.stream.SourceBase
addAttributeSink, addElementSink, addSink, attributeSinks, clearAttributeSinks, clearElementSinks, clearSinks, elementSinks, 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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.graphstream.stream.file.FileSource
nextStep
 
Methods inherited from interface org.graphstream.stream.Source
addAttributeSink, addElementSink, addSink, clearAttributeSinks, clearElementSinks, clearSinks, removeAttributeSink, removeElementSink, removeSink
 

Method Detail

readAll

public void readAll(String filename)
             throws IOException
Description copied from interface: FileSource
Read the whole file in one big non-interruptible operation.

Specified by:
readAll in interface FileSource
Parameters:
filename - Name of the file to read.
Throws:
IOException - If an I/O error occurs while reading.

readAll

public void readAll(URL url)
             throws IOException
Description copied from interface: FileSource
Read the whole file in one big non-interruptible operation.

Specified by:
readAll in interface FileSource
Parameters:
url - The URL of the file to read.
Throws:
IOException - If an I/O error occurs while reading.

readAll

public void readAll(InputStream stream)
             throws IOException
Description copied from interface: FileSource
Read the whole file in one big non-interruptible operation.

Specified by:
readAll in interface FileSource
Parameters:
stream - The input stream to use for reading.
Throws:
IOException - If an I/O error occurs while reading.

readAll

public void readAll(Reader reader)
             throws IOException
Description copied from interface: FileSource
Read the whole file in one big non-interruptible operation.

Specified by:
readAll in interface FileSource
Parameters:
reader - The reader to use.
Throws:
IOException - If an I/O error occurs while reading.

begin

public void begin(String filename)
           throws IOException
Description copied from interface: FileSource
Begin reading the file stopping as soon as possible. Next graph events stored in the file will be sent by calling 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.

Specified by:
begin in interface FileSource
Parameters:
filename - Name of the file to read.
Throws:
IOException - If an I/O error occurs while reading.

begin

public void begin(InputStream stream)
           throws IOException
Description copied from interface: FileSource
Begin reading the file stopping as soon as possible. Next graph events stored in the file will be sent by calling 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.

Specified by:
begin in interface FileSource
Parameters:
stream - The input stream to use for reading.
Throws:
IOException - If an I/O error occurs while reading.

begin

public void begin(URL url)
           throws IOException
Description copied from interface: FileSource
Begin reading the file stopping as soon as possible. Next graph events stored in the file will be sent by calling 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.

Specified by:
begin in interface FileSource
Parameters:
url - The URL of the file to read.
Throws:
IOException - If an I/O error occurs while reading.

begin

public void begin(Reader reader)
           throws IOException
Description copied from interface: FileSource
Begin reading the file stopping as soon as possible. Next graph events stored in the file will be sent by calling 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.

Specified by:
begin in interface FileSource
Parameters:
reader - The file reader to use.
Throws:
IOException - If an I/O error occurs while reading.

nextEvents

public abstract boolean nextEvents()
                            throws IOException
Description copied from interface: FileSource
Try to process one graph event, or as few as possible, if more must be read at once. For this method to work, you must have called FileSource.begin(InputStream) or FileSource.begin(String) before. This method return true while there are still events to read.

Specified by:
nextEvents in interface FileSource
Returns:
true if there are still events to read, false as soon as the file is finished.
Throws:
IOException - If an I/O error occurs while reading.

end

public void end()
         throws IOException
Description copied from interface: FileSource
Finish the reading process (even if FileSource.nextEvents() or FileSource.nextStep() did not returned false). You must call this method after reading.

Specified by:
end in interface FileSource
Throws:
IOException - If an I/O error occurs while closing the file.

addAttributeClass

public void addAttributeClass(String attribute,
                              String attribute_class)
Declare that when attribute is found, the corresponding attribute_class must be instantiated and inserted in the current element being parsed. This is equivalent to the "map" keyword of the GML file. An attribute appears in a GML file as a name followed by a "[...]" block. The contents of this block defines sub-attributes that must map to public fields of the attribute. Only attributes that are not handled specifically by this parser can be added.

Parameters:
attribute - must name the attribute.
attribute_class - must be the complete name of a Java class that will represent the attribute.


Copyright © 2012. All Rights Reserved.