Provides classes for accessing and manipulating the content, metadata and revision history of nodes. By default linear versioning is automatically provided, but the client can use helper functions to create and merge branches. The versioning component also manages the metadata associated on the objects, like for example its size and creation date.

Each {@link org.apache.slide.structure.ObjectNode ObjectNode} which has content has associated {@link org.apache.slide.content.NodeRevisionDescriptors NodeRevisionDescriptors} and {@link org.apache.slide.content.NodeRevisionDescriptor NodeRevisionDescriptor} objects. These objects manage:

- the metadata associated with the object
- the revision tree

The basic metadata include :

- Client friendly name
- Creation date
- Content type
- Content language (if applicable)

The client application can modify metadata fields, add additional fields, ...

### Object Model

#### {@link org.apache.slide.content.NodeRevisionDescriptors NodeRevisionDescriptors}

The NodeRevisionDescriptors class represents the revision tree of an object. This object is immutable.

- Object: Uri of the asssociated node.
- Use Versioning: Flag which indicates whether or not a node has multiple revisions.
- Latest Revision Numbers: Indicates what is the latest revision number in each branch.
- Branches: Revision numbers of all the revisions of the node.

#### {@link org.apache.slide.content.NodeRevisionDescriptor NodeRevisionDescriptor}

The NodeRevisionDescriptor class represents all the metadata information associated with the binary content of a revision. This includes information on the revision itself, labels and properties.

- Branch Name: Name of the branch in which this revision is.
- Number: Revision number.
- Labels: Labels (tags) associated with the revision.
- Properties: Properties associated with the revision. The default properties are: creation date, name, type, source, content length, last modification date.

#### {@link org.apache.slide.content.NodeProperty NodeProperty}

The NodeProperty class represents an individual property associated to a revision. This object is immutable.

- Name: Property name.
- Namespace: Property namespace.
- Value: Property value.
- Type: Property type.

#### {@link org.apache.slide.content.NodeRevisionContent NodeRevisionContent}

The NodeRevisionContent class gives access to the revision's binary content.

#### {@link org.apache.slide.content.NodeRevisionNumber NodeRevisionNumber}

The NodeRevisionNumber class represents the revision number of a revision. This object is immutable.