Definition of the storage of the classes. The StoreManager controls the persistence to the datastore. This package provides generic functionality for all datastore types. Each datastore type will have its own subpackage(s) (e.g rdbms) that cater for the specifics of that datastore. The DatastoreAdapter represents the interface to that datastore. This is typically extended for particular datastore types (e.g RDBMS) to provide the specifics for that datastore.

Each class is persisted to a datastore table, and each persistable field is mapped to a datastore column. With RDBMS, these are ClassBaseTable, and Column.

Queries are mapped to the datastore type in question. With the case of RDBMS, we allow 3 query languages ... JDOQL, SQL, and JPOXSQL. With others we will likely just allow JDOQL. The QueryStatement currently contains RDBMS functionality and will be subclassed when we have alternative datastores.