|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
Operation.Switch | |
VersioningServlet.GraphPrinter | Prints the versioning dependency graph to the specified writer. |
VersioningServlet.RollbackLogger | Logs operations performed during rollback. |
VersioningServlet.VersionedObjects | An iterator over a collection of versioned oids. |
Class Summary | |
Difference | Difference |
HistoryCollection | Encapsulates a query that returns all the tagged transactions for an object. |
Initializer | Sets up observers and initializes a few disconnected data objects needed by versioning. |
Operation | Operation |
Operation.Type | |
Tag | Tag |
TagCollection | TagCollection |
Transaction | Transaction |
TransactionCollection | A collection of Transaction s. |
VersionedACSObject | Deprecated. with no replacement. |
VersioningConfig | |
VersioningServlet | This servlet, along with a couple of helper JSPs, is used for debugging. |
Versions | This class provides methods for rolling back to a previous point in the versioning log. |
Exception Summary | |
VersioningException | This is an unchecked exception. |
Provides for versioning of data objects.
We refer to the previous implementations of the versioning package as the "old versioning". This includes implementations up to and including 5.2.x. If you have used the old versioning before, there is a number of key differences between old versioning and this implementation that you may want to be aware of.
The old versioning operates on the domain object
level. Only those
domain objects that subclass VersionedACSObject
used to
be versioned.
This implementation operates on the data object
level. In order to
make an object type versioned, its PDL definition must start with the
"versioned" keyword, like so:
versioned object type Quux { BigInteger[1..1] id = quuces.id INTEGER; String[1..1] name = quuces.name VARCHAR; object type (id); }
Object types may also be versioned implicitly due to semantic constraints imposed by marking some other object type as "versioned". For example, a subtype of a versioned object type is also versioned.
object type GreatQuux extends Quux { String[0..1] email = great_quuces.email VARCHAR; component Foobar[0..n] foobars = join great_quuces.id to foobars.great_quux_id; reference key(great_quuces.id); }
In this example, the GreatQuux
object type is
versioned, because it extends a versioned type.
Components of a versioned type are also versioned. In the above
example, the Foobar
type is versioned, because it is a
component of the versioned object type GreatQuux
.
A more complete description of the supported PDL syntax and its intended semantics is outside the scope of this brief description. Please refer to the Developer Guide for further details.
About the only carryover from the old versioning is the VersionedACSObject
class. It has been
marked as deprecated. It may be removed in a future release. You
should not be using or relying on any of the API provided by this
class.
com.arsdigita.persistence
|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |