org._3pq.jgrapht.generate
Class RingGraphGenerator

java.lang.Object
  extended byorg._3pq.jgrapht.generate.RingGraphGenerator
All Implemented Interfaces:
GraphGenerator

public class RingGraphGenerator
extends java.lang.Object
implements GraphGenerator

Generates a ring graph of any size. A ring graph is a graph that contains a single cycle that passes through all its vertices exactly once. For a directed graph, the generated edges are oriented consistently around the ring.

Since:
Sep 16, 2003
Author:
John V. Sichi

Constructor Summary
RingGraphGenerator(int size)
          Construct a new RingGraphGenerator.
 
Method Summary
 void generateGraph(Graph target, VertexFactory vertexFactory, java.util.Map resultMap)
          Generate a graph structure. The topology of the generated graph is dependent on the implementation. For graphs in which not all vertices share the same automorphism equivalence class, the generator may produce a labeling indicating the roles played by generated elements. This is the purpose of the resultMap parameter. For example, a generator for a wheel graph would designate a hub vertex. Role names used as keys in resultMap should be declared as public static final Strings by implementation classes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RingGraphGenerator

public RingGraphGenerator(int size)
Construct a new RingGraphGenerator.

Parameters:
size - number of vertices to be generated
Throws:
java.lang.IllegalArgumentException - if the specified size is negative.
Method Detail

generateGraph

public void generateGraph(Graph target,
                          VertexFactory vertexFactory,
                          java.util.Map resultMap)
Generate a graph structure. The topology of the generated graph is dependent on the implementation. For graphs in which not all vertices share the same automorphism equivalence class, the generator may produce a labeling indicating the roles played by generated elements. This is the purpose of the resultMap parameter. For example, a generator for a wheel graph would designate a hub vertex. Role names used as keys in resultMap should be declared as public static final Strings by implementation classes.

Specified by:
generateGraph in interface GraphGenerator
Parameters:
target - receives the generated edges and vertices; if this is non-empty on entry, the result will be a disconnected graph since generated elements will not be connected to existing elements
vertexFactory - called to produce new vertices
resultMap - if non-null, receives implementation-specific mappings from String roles to graph elements (or collections of graph elements)