Table, Graph, and Tree data structures for organizing data.


Interface Summary
Edge Tuple sub-interface that represents an edge in a graph structure.
Node Tuple sub-interface that represents a node in a graph or tree structure.
Tuple Tuples are objects representing a row of a data table, providing a simplified interface to table data.

Class Summary
CascadedTable Table subclass featuring a "cascaded" table design - a CascadedTable can have a parent table, from which it inherits a potentially filtered set of rows and columns.
Graph A Graph models a network of nodes connected by a collection of edges.
Schema The Schema class represents a description of a Table's columns, including column names, data types, and default values.
SpanningTree Special tree instance for storing a spanning tree over a graph instance.
Table A Table organizes a collection of data into rows and columns, each row containing a data record, and each column containing data values for a named data field with a specific data type.
Table.ColumnEntry Helper class that encapsulates a map entry for a column, including the column itself and its metadata and index.
Tree Graph subclass that models a tree structure of hierarchical parent-child relationships.

Exception Summary
DataReadOnlyException Exception indicating an attempt to write to a read-only data value was made.
DataTypeException Exception indicating an incompatible data type assignment.

Package Description

Table, Graph, and Tree data structures for organizing data. Table instances store any number of type data in a row and column format. Each column of data is separately represented in a Column instance. Row data can be accessed directly by the row index, or can be accessed in an object-oriented manner using the Tuple interface. The CascadedTable class provides filtered views over backing Table instances. Table Schemas are used to represent the names, data type, and default values of table columns, and can be used to instantiate tables of the desired type.

Graph and Tree instances also use a tabular representation, using separate data tables to store node and edge data. At the cost of a little complexity, this allows for a very flexible system. For example, the same data table can be used as the node table for multiple graphs, supporting efficient memory use and allowing easy propagation of data changes. Similar to tables, graphs and trees can be accessed using the row indices of the respective tables, or through object-oriented Tuple proxies. The Node and Edge interfaces provide a more typical object-oriented API to the graph structure and data.

Copyright 2007 Regents of the University of California