The TDM consist of:
There are three core interfaces that model three main TDM abstractions:
a manipulatable model, a data manipulator and a manipulation criterion. The
most basic interface is ManipulatableModel - an abstraction which
represents tabular data model that can be modified from outside by tabular data
manipulators. Tabular data manipulators can enforce a manipulatable
model to change the representation of its data(e.g. so it can appear to sorted)
and are represented by DataManipulator interface. The third core
interface is ManipulationCriterion that represents a manipulation
criterion. A manipulation criterion can be used by tabular data
manipulators both to get additional parameters required by the manipulation
algorithm and to support the decisions making concerning the tabular data elements
being considered during a manipulation.
The TDM is distributed as open source software under the Artistic License. If you have further questions, you may want to refer to the software license pages at the Free Software Foundation website.