Package org.apache.jackrabbit.oak.jcr.delegate Description
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:
Responsibilities of the delegate 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.