Class BasicGraphBuilder

Object
BasicGraphBuilder
All Implemented Interfaces:
GraphBuilder
Direct Known Subclasses:
BasicDirectedGraphBuilder, BasicLineGraphBuilder, OptGraphBuilder

public class BasicGraphBuilder extends Object implements GraphBuilder
Basic implementation of GraphBuilder. This implementation of builder creates the graph when the builder is created. The underlying graph implementation makes copies of the references to the node and edge collections, not copies of the underlying collections themselves. In this way as nodes and edges are added to the builder, it is reflected in the built graph.
Author:
Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
  • Constructor Details

    • BasicGraphBuilder

      public BasicGraphBuilder()
      Constructs a new empty graph builder.
  • Method Details

    • buildNode

      public Node buildNode()
      Description copied from interface: GraphBuilder
      Builds a new node for the graph. This method does not add the new node to the graph, this must be done with the addNode(Node) method.
      Specified by:
      buildNode in interface GraphBuilder
      Returns:
      Node The newly built node.
      See Also:
    • buildEdge

      public Edge buildEdge(Node nodeA, Node nodeB)
      Description copied from interface: GraphBuilder
      Builds a new edge for the graph. This method does not add the new node to the graph, this must be done with the addEdge(Edge) method.
      Specified by:
      buildEdge in interface GraphBuilder
      Parameters:
      nodeA - Adjacent node to edge.
      nodeB - Adjacent node to edge.
      Returns:
      Edge the newly built Edge.
      See Also:
    • addNode

      public void addNode(Node node)
      Description copied from interface: GraphBuilder
      Adds a node to the graph.
      Specified by:
      addNode in interface GraphBuilder
      Parameters:
      node - Node to be added to graph.
      See Also:
    • addEdge

      public void addEdge(Edge edge)
      Checks for loops in which case it only added the edge to the adjacency list of one of the nodes (both of its nodes are the same node).
      Specified by:
      addEdge in interface GraphBuilder
      Parameters:
      edge - Edge to be added to graph.
      See Also:
    • removeNode

      public void removeNode(Node node)
      Description copied from interface: GraphBuilder
      Removes an node from the graph.
      Specified by:
      removeNode in interface GraphBuilder
      Parameters:
      node - Node to be removed from graph.
      See Also:
    • removeNodes

      public void removeNodes(Collection nodes)
      Description copied from interface: GraphBuilder
      Removes a collection of nodes from the graph.
      Specified by:
      removeNodes in interface GraphBuilder
      Parameters:
      nodes - A collection of nodes to be removed from the graph.
      See Also:
    • removeEdge

      public void removeEdge(Edge edge)
      Description copied from interface: GraphBuilder
      Removes an edge from the graph.
      Specified by:
      removeEdge in interface GraphBuilder
      Parameters:
      edge - Edge to be removed from graph.
      See Also:
    • removeEdges

      public void removeEdges(Collection edges)
      Description copied from interface: GraphBuilder
      Removes a collection of edges from the graph.
      Specified by:
      removeEdges in interface GraphBuilder
      Parameters:
      edges - Collection of edges to be removed from the graph.
      See Also:
    • getGraph

      public Graph getGraph()
      Description copied from interface: GraphBuilder
      Returns the graph being built.
      Specified by:
      getGraph in interface GraphBuilder
      Returns:
      Graph The graph being built.
      See Also:
    • clone

      public Object clone(boolean deep) throws Exception
      Description copied from interface: GraphBuilder
      Returns a clone of the builder. A deep clone copies the underlying graph structure, a non deep clone results in an empty builder
      Specified by:
      clone in interface GraphBuilder
      Parameters:
      deep - Deep or non deep clone.
      Returns:
      A graph builder.
      Throws:
      Exception
      See Also:
    • importGraph

      public void importGraph(Graph g)
      Description copied from interface: GraphBuilder
      Constructs a graph builder from a pre built graph. The nodes and edges of the existing graph are imported into the builder. Relationships between nodes and edges are assummed to be preexistant.
      Specified by:
      importGraph in interface GraphBuilder
      Parameters:
      g - A pre built graph.
      See Also:
    • getNodes

      public Collection<Node> getNodes()
      Returns the nodes belonging to the graph being built.
      Returns:
      A collection of nodes.
    • getEdges

      public Collection<Edge> getEdges()
      Returns the edges belonging to the graph being built.
      Returns:
      A collection of edges.
    • buildGraph

      protected Graph buildGraph()
      Creates the underlying graph object.
      Returns:
      A Graph object.