Provides a datatype for DAGs (directed acyclic graphs).

See: Description

Package Description

Provides a datatype for DAGs (directed acyclic graphs).

The abstract class KahinaDAG defines the functionality that any DAG implementation is expected so support. This includes the possibility to extend the DAG structure, to define labels for both nodes and edges, abd to influence the appearance of nodes and eges via integer-encoded states. Unlike in the KahinaGraph class, edges are directly modeled as objects with an ID space of their own. Any class implementing KahinaDAG can be visualized via the package.

KahinaMemDAG is the reference DAG implementation which implements the functionality in a straightforward manner. It is not useful for more than medium-sized DAGs because the entire data is stored in memory (hence the name).

Instances of KahinaDAGEvent are used internally to communicate changes to a DAG model. Every KahinaDAGEvent is of one of the types defined in KahinaDAGEventType, with NEW_NODE being the only event type which is currently implemented.