Library of static methods for manipulating arrays.
A list object that wraps around an array of objects or arrays.
Global database interface, complete with static methods.
An extension that adds additional functionality to a {@link DataObject}.
Implements a "lazy loading" DataObjectSet.
A single database record & abstract class for the data-access-model.
Provides dataobject and database schema mapping functionality
An object representing a query of data from the DataObject's supporting database.
Represents a subgroup inside a WHERE clause in a {@link DataQuery}
DatabaseAdmin class
A list decorator that allows a list to be grouped into sub-lists by common values of a field.
Subclass of {@link DataList} representing a has_many relation.
A base class for decorators that wrap around a list to provide additional functionality. It passes through list methods to the underlying list implementation.
Subclass of {@link DataList} representing a many_many relation.
ManyManyList backed by a dataobject join table
Injected into DataQuery to augment getFinalisedQuery() with a join table
Creates a map from an SS_List by defining a key column and a value column.
Builds a map iterator around an Iterator. Called by Map
A decorator that wraps around a data list in order to provide pagination.
Represents a has_many list linked against a polymorphic relationship
A DataList that represents a relation.
An {@link ArrayList} that represents an unsaved relation.
A class that combined as a boolean result with an optional list of error messages.


Interface to provide enough information about a record to make it previewable through the CMS. It uses the record database ID, its "frontend" and "backend" links to link up the edit form with its preview.
DataObjectInterface is an interface that other data systems in your application can implement in order to behave in a manner similar to DataObject.
Allows middleware to modily finalised dataquery on a per-instance basis
Additional interface for {@link SS_List} classes that are filterable.
Anything that implements HiddenClass won't be shown in user-interface elements. For example, DataObjects that implement HiddenClass won't be showing in the "new page" dropdown.
Additional interface for {@link SS_List} classes that are limitable - able to have a subset of the list extracted.
Abstract representation of a DB relation field, either saved or in memory
An interface that a class can implement to be treated as a list container.
Additional interface for {@link SS_List} classes that are sortable.


Throw this exception whenever unexpected data is found.
Exception thrown by {@link DataObject}::write if validation fails. By throwing an exception rather than a user error, the exception can be caught in unit tests and as such can be used as a successful test.