You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2013/03/09 00:35:07 UTC

svn commit: r1454624 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java

Author: mduerig
Date: Fri Mar  8 23:35:06 2013
New Revision: 1454624

URL: http://svn.apache.org/r1454624
Log:
OAK-672: Avoid JCR APIs calling other JCR APIs
basic docs

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java?rev=1454624&r1=1454623&r2=1454624&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java Fri Mar  8 23:35:06 2013
@@ -68,6 +68,26 @@ import org.slf4j.LoggerFactory;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
+/**
+ * TODO document
+ *
+ *
+ * Responsibilities of JCR Impl classes:
+ * * name/path mapping for both method arguments and return values
+ * ** NamePathMapper should be in SessionImpl instead of SessionDelegate
+ * * tracking and instantiation of other JCR Impl objects
+ * ** Delegate classes should refer to neither the JCR API nor the Impl classes
+ * ** Values should be returned as PropertyState instances that are mapped to JCR Values by an Impl class
+ *
+ * Delegate classes
+ * * access to the Oak API
+ * * the checkStatus() and perform() logic
+ * ** Something like:
+ * *** all the "business logic" associated with complex operations
+ * *** the complex SessionObject classes from Impl classes should be pushed down to Delegates
+ * *** dlg.perform(dlg.getSomeOperation(oakName, ...))
+ *
+ */
 public class SessionDelegate {
     static final Logger log = LoggerFactory.getLogger(SessionDelegate.class);