setProperty

Implementation for setProperty() using a Value
array. The type of the returned property is enforced based on the
enforceType flag. If set to true, the returned
property is of the passed type if it didn't exist before. If set to
false, then the returned property may be of some other type,
but still must be based on an existing property definition for the given
name and multi-valued flag. The resulting type is taken from that
definition and the implementation tries to convert the passed values to
that type. If that fails, then a ValueFormatException is thrown.

Parameters:

name - the name of the property to set.

values - the values to set. If null the property
is removed.

type - the target type of the values to set.

enforceType - if the target type is enforced.

Returns:

the Property object set, or null if
this method was used to remove a property (by setting its value
to null).

Throws:

ValueFormatException - if a value cannot be converted to
the specified type or if the
property already exists and is not
multi-valued.

VersionException - if this node is read-only due to a
checked-in node and this implementation
performs this validation immediately.

LockException - if a lock prevents the setting of
the property and this implementation
performs this validation immediately.

ConstraintViolationException - if the change would violate a
node-type or other constraint and
this implementation performs this
validation immediately.

removeShare

A special kind of remove() that removes this node, but does
not remove any other node in the shared set of this node.

All of the exceptions defined for remove() apply to this
function. In addition, a RepositoryException is thrown if
this node cannot be removed without removing another node in the shared
set of this node.

getPrimaryPath

Returns the primary path to this Item.
Overridden to return a different path for shareable nodes.
TODO SN: copies functionality in that is already available in
HierarchyManagerImpl, namely composing a path by
concatenating the parent path + this node's name and index:
rather use hierarchy manager to do this

getAllowedLifecycleTransistions

Returns all allowed transitions from the current lifecycle state of
this node.

The lifecycle policy node referenced by the "jcr:lifecyclePolicy"
property is expected to contain a "transitions" node with a list of
child nodes, one for each transition. These transition nodes must
have single-valued string "from" and "to" properties that identify
the allowed source and target states of each transition.

Note that future versions of Apache Jackrabbit may well use different
lifecycle policy implementations.