Class TextfileReaderWriter

Object
AbstractReaderWriter
TextfileReaderWriter
All Implemented Interfaces:
GraphReaderWriter, FileReaderWriter

public abstract class TextfileReaderWriter extends AbstractReaderWriter implements FileReaderWriter
An implementation of GraphReaderWriter that reads/writes graphs from/to text files. Each line of the text file represents an object to be modelled by the graph.
When performing a read, the text file is read line by line. As each line is read it is tokenized based on the delimiter property, and passed to the template method readInternal(StringTokenizer), which must be implemented by a subclass. The method returns the object that is to be represented in the graph. The returned object is then passed to an underlying GraphGenerator which creates the necessary graph components to modell the object.

When performing a write, the graph is read component by component based on set properties. If the NODES property is set, nodes will be written. If the EDGES property is set, edges will be written as well. As each component is processed, it is passed to the repspective template methods writeNode(Writer,Node) and writeEdge(Writer,Edge). The methods then write out the text representation of the component.
Author:
Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
  • Field Details

  • Constructor Details

    • TextfileReaderWriter

      public TextfileReaderWriter()
  • Method Details

    • read

      public Graph read() throws Exception
      Performs a read of the text file line by line. As each line is read the corresponding graph components represented by the line of text are created by an underlying GraphGenerator.
      Specified by:
      read in interface GraphReaderWriter
      Returns:
      The represented graph.
      Throws:
      Exception
      See Also:
      • GraphGenerator#read()
    • write

      public void write(Graph g) throws Exception
      Performs a write on the graph out to a text file. If the NODES property is set, the nodes of the graph will be written, and if the EDGES property is set, the edges of the graph will be written.

      * @see GraphGenerator#write()

      Specified by:
      write in interface GraphReaderWriter
      Parameters:
      g - The graph to be
      Throws:
      Exception
    • writeNode

      protected void writeNode(Writer out, Node n)
      Template method for writing the text representation of a node to an text file.
      Parameters:
      out - The text file writer.
      n - The node to write.
    • writeEdge

      protected void writeEdge(Writer out, Edge e)
      Template method for writing the text representation of an edge to an text file.
      Parameters:
      out - The text file writer.
      e - The edge to write.
    • readInternal

      protected abstract Object readInternal(StringTokenizer st)
      Template method for returning the object represented by a line in the text file being read.
      Parameters:
      st - The tokenized line read from text file.
      Returns:
      The object represented by the line of text.