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 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 DataQuery

DatabaseAdmin class

A list decorator that allows a list to be grouped into sub-lists by common values of a field.

Subclass of 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 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.

Map_Iterator deprecated

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 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 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 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 SS_List classes that are sortable.


Throw this exception whenever unexpected data is found.

Exception thrown by 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.