Data Structure Classes and Utilities

The Prajna data structure classes implement the various data structures supported by Prajna. In addition, prajna includes a set of utility classes, which are a group of classes supporting the various data structures.


The group of Graph classes provide the definition and support utilities for the graph data structure. The Graph class is an abstract class designed with Java Generics, and is designed to be similar to java.util.Map.





provide low level implementations of two different types of graphs. As generic containers, they can include graphs with any type of object. A typical visualization application would use the appropriate graph type.

The ClusterGraph class provides a more complex graph class with behavior which separates and identifies individual clusters within a graph. The ClusterGraph allows an application to easily identify connected subgraphs. Furthermore, the state of the ClusterGraph is updated automatically when nodes or edges are added or removed.

The GraphPath class is a path of edge elements defining an arbitrary path through a graph. It is designed to be similar to TreePath.

The GraphUtils class includes a number of static utility methods which operate on graphs. It includes methods to identify a shortest path and a spanning tree.


The Tree class extends the javax.swing.tree.DefaultMutableTreeNode class. It offers iterators to traverse the tree, and typing for the user object stored at the node.


The Grid class provides support for the Grid data structure.

Graphics Utilities

The SvgGraphics class provides an extension to java.awt.Graphics which outputs the graphic display into a Scalable Vector Graphics (SVG) format. It is still in development. It is designed to be a drop-in for classes which accept a Graphics object for rendering.