weka.gui.graphvisualizer
Class BIFParser

java.lang.Object
  extended byweka.gui.graphvisualizer.BIFParser
All Implemented Interfaces:
GraphConstants

public class BIFParser
extends java.lang.Object
implements GraphConstants

This class parses an inputstream or a string in XMLBIF ver. 0.3 format, and builds the datastructures that are passed to it through the constructor.

Version:
1.0 - 24 Apr 2003 - Initial version (Ashraf M. Kibriya)
Author:
Ashraf M. Kibriya (amk14@cs.waikato.ac.nz)

Field Summary
protected  java.lang.String graphName
          This holds the name of the graph (i.e. the name of network tag in XMLBIF input)
protected  java.io.InputStream inStream
          This holds the InputStream to be parsed
protected  java.lang.String inString
          This holds the string to be parsed
protected  FastVector m_edges
          These holds the nodes and edges of the graph
protected  FastVector m_nodes
          These holds the nodes and edges of the graph
 
Fields inherited from interface weka.gui.graphvisualizer.GraphConstants
DIRECTED, DOUBLE, NORMAL, PLURAL_DUMMY, REVERSED, SINGULAR_DUMMY
 
Constructor Summary
BIFParser(java.io.InputStream instream, FastVector nodes, FastVector edges)
          Constructor (if our input is an InputStream)
BIFParser(java.lang.String input, FastVector nodes, FastVector edges)
          Constructor (if our input is a String)
 
Method Summary
 java.lang.String parse()
          This method parses the string or the InputStream that we passed in through the constructor and builds up the m_nodes and m_edges vectors
static void writeXMLBIF03(java.lang.String filename, java.lang.String graphName, FastVector nodes, FastVector edges)
          This method writes a graph in XMLBIF ver. 0.3 format to a file.
private static java.lang.String XMLNormalize(java.lang.String sStr)
          XMLNormalize converts the five standard XML entities in a string g.e. the string V&D's is returned as V&D's
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_nodes

protected FastVector m_nodes
These holds the nodes and edges of the graph


m_edges

protected FastVector m_edges
These holds the nodes and edges of the graph


graphName

protected java.lang.String graphName
This holds the name of the graph (i.e. the name of network tag in XMLBIF input)


inString

protected java.lang.String inString
This holds the string to be parsed


inStream

protected java.io.InputStream inStream
This holds the InputStream to be parsed

Constructor Detail

BIFParser

public BIFParser(java.lang.String input,
                 FastVector nodes,
                 FastVector edges)
Constructor (if our input is a String)

Parameters:
input - the string to be parsed (should not be null)
nodes - vector containing GraphNode objects (should be empty)
edges - vector containing GraphEdge objects (should be empty)

BIFParser

public BIFParser(java.io.InputStream instream,
                 FastVector nodes,
                 FastVector edges)
Constructor (if our input is an InputStream)

Parameters:
instream - the InputStream to be parsed (should not be null)
nodes - vector containing GraphNode objects (should be empty)
edges - vector containing GraphEdge objects (should be empty)
Method Detail

parse

public java.lang.String parse()
                       throws BIFFormatException,
                              java.lang.NumberFormatException,
                              java.lang.Exception
This method parses the string or the InputStream that we passed in through the constructor and builds up the m_nodes and m_edges vectors

Returns:
- returns the name of the graph
Throws:
- - Exception if both the inString and inStream are null, i.e. no input has been provided
- - BIFFormatException if there is format of the input is not correct. The format should conform to XMLBIF version 0.3
- - NumberFormatException if there is an invalid char in the probability table of a node.
BIFFormatException
java.lang.NumberFormatException
java.lang.Exception

writeXMLBIF03

public static void writeXMLBIF03(java.lang.String filename,
                                 java.lang.String graphName,
                                 FastVector nodes,
                                 FastVector edges)
This method writes a graph in XMLBIF ver. 0.3 format to a file. However, if is reloaded in GraphVisualizer we would need to layout the graph again to display it correctly.

Parameters:
filename - - The name of the file to write in. (will overwrite)
graphName - - The name of the graph. (will be the name of network tag in XMLBIF)
nodes - - Vector containing all the nodes
edges - - Vector containing all the edges

XMLNormalize

private static java.lang.String XMLNormalize(java.lang.String sStr)
XMLNormalize converts the five standard XML entities in a string g.e. the string V&D's is returned as V&D's

Parameters:
sStr - string to normalize
Returns:
normalized string