Package org.apache.jackrabbit.oak.jcr.delegate
This package contains the delegates for the various JCR API entities.
While the JCR API implementation classes directly implement the client
facing JCR API, they do so without implementing much of the business
logic themselves but rather rely on the functionality provided by the
delegates. This separation of the JCR functionality into external and
internal variants guarantees that JCR API consumers cannot gain access
to internals by simply casting to an implementation class. Further it
makes internal round-tripping through the JCR API unnecessary since
all functionality is provided by the internal interface (i.e. delegates),
which simplifies maintaining and checking state invariants.
Responsibilities of JCR API implementation classes:
- Prevent access to internals.
- Name/path mapping for both method arguments and return values.
- Tracking and instantiation of other JCR implementation objects.
- Conversion from JCR Values to PropertyState instances and vice versa.
- No direct access to the Oak API
- Business logic associated with complex JCR operations.
- Provide means for state invariant checking.
- Must no refer to neither the JCR API nor its implementation classes.
-
Class Summary Class Description AccessControlManagerDelegator This implementation ofAccessControlManager
delegates back to a delegatee wrapping each call into aSessionOperation
closure.ItemDelegate Abstract base class forNodeDelegate
andPropertyDelegate
JackrabbitAccessControlManagerDelegator This implementation ofJackrabbitAccessControlManager
delegates back to a delegatee wrapping each call into aSessionOperation
closure.NodeDelegate NodeDelegate
serve as internal representations ofNode
s.PrincipalManagerDelegator This implementation ofPrincipalManager
delegates back to a delegatee wrapping each call into aSessionOperation
closure.PrivilegeManagerDelegator This implementation ofPrivilegeManager
delegates back to a delegatee wrapping each call into aSessionOperation
closure.PropertyDelegate PropertyDelegate
serve as internal representations ofProperty
s.SessionDelegate TODO documentUserManagerDelegator This implementation ofUserManager
delegates back to a delegatee wrapping each call into aUserManager
closure.VersionDelegate VersionDelegate
...VersionHistoryDelegate VersionHistoryDelegate
...VersionManagerDelegate VersionManagerDelegate
...WorkspaceDelegate Delegate class for workspace operations.