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/27 16:22:21 UTC

svn commit: r1461644 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr: ItemImpl.java NodeImpl.java PropertyImpl.java

Author: mduerig
Date: Wed Mar 27 15:22:21 2013
New Revision: 1461644

URL: http://svn.apache.org/r1461644
Log:
OAK-672: Avoid JCR APIs calling other JCR APIs
avoid extra call to perform() for getting ItemDefinition

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java?rev=1461644&r1=1461643&r2=1461644&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemImpl.java Wed Mar 27 15:22:21 2013
@@ -69,14 +69,14 @@ abstract class ItemImpl<T extends ItemDe
     protected abstract class ItemReadOperation<T> extends SessionOperation<T> {
         @Override
         protected void checkPreconditions() throws RepositoryException {
-            checkStatus();
+            checkAlive();
         }
     }
 
     protected abstract class ItemWriteOperation<T> extends SessionOperation<T> {
         @Override
         protected void checkPreconditions() throws RepositoryException {
-            checkStatus();
+            checkAlive();
             checkProtected();
         }
     }
@@ -267,17 +267,17 @@ abstract class ItemImpl<T extends ItemDe
      * @throws RepositoryException if this item has been rendered invalid for some reason
      * or the associated session has been logged out.
      */
-    void checkStatus() throws RepositoryException {
+    void checkAlive() throws RepositoryException {
         sessionDelegate.checkAlive();
         dlg.checkNotStale();
     }
 
-    protected abstract ItemDefinition getDefinition() throws RepositoryException;
+    protected abstract ItemDefinition internalGetDefinition() throws RepositoryException;
 
     void checkProtected() throws RepositoryException {
         ItemDefinition definition;
         try {
-            definition = getDefinition();
+            definition = internalGetDefinition();
         } catch (RepositoryException ignore) {
             // FIXME: No definition -> not protected but a different error
             // which should be handled else where

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1461644&r1=1461643&r2=1461644&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Wed Mar 27 15:22:21 2013
@@ -187,7 +187,7 @@ public class NodeImpl<T extends NodeDele
      */
     @Override
     public void accept(ItemVisitor visitor) throws RepositoryException {
-        checkStatus();
+        checkAlive();
         visitor.visit(this);
     }
 
@@ -944,13 +944,7 @@ public class NodeImpl<T extends NodeDele
         return perform(new ItemReadOperation<NodeDefinition>() {
             @Override
             protected NodeDefinition perform() throws RepositoryException {
-                NodeDelegate parent = dlg.getParent();
-                if (parent == null) {
-                    return getDefinitionProvider().getRootDefinition();
-                } else {
-                    return getDefinitionProvider().getDefinition(
-                            parent.getTree(), dlg.getTree());
-                }
+                return internalGetDefinition();
             }
         });
     }
@@ -958,7 +952,7 @@ public class NodeImpl<T extends NodeDele
     @Override
     @Nonnull
     public String getCorrespondingNodePath(String workspaceName) throws RepositoryException {
-        checkStatus();
+        checkAlive();
         checkValidWorkspace(workspaceName);
         throw new UnsupportedRepositoryOperationException("TODO: Node.getCorrespondingNodePath");
     }
@@ -966,7 +960,7 @@ public class NodeImpl<T extends NodeDele
 
     @Override
     public void update(String srcWorkspace) throws RepositoryException {
-        checkStatus();
+        checkAlive();
         checkValidWorkspace(srcWorkspace);
 
         // check for pending changes
@@ -1300,7 +1294,18 @@ public class NodeImpl<T extends NodeDele
 
     }
 
-    //------------------------------------------------------------< private >---
+    //------------------------------------------------------------< internal >---
+
+    @Override
+    protected final NodeDefinition internalGetDefinition() throws RepositoryException {
+        NodeDelegate parent = dlg.getParent();
+        if (parent == null) {
+            return getDefinitionProvider().getRootDefinition();
+        } else {
+            return getDefinitionProvider().getDefinition(
+                    parent.getTree(), dlg.getTree());
+        }
+    }
 
     private EffectiveNodeType getEffectiveNodeType() throws RepositoryException {
         return getEffectiveNodeTypeProvider().getEffectiveNodeType(dlg.getTree());

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java?rev=1461644&r1=1461643&r2=1461644&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java Wed Mar 27 15:22:21 2013
@@ -115,7 +115,7 @@ public class PropertyImpl extends ItemIm
 
     @Override
     public void accept(ItemVisitor visitor) throws RepositoryException {
-        checkStatus();
+        checkAlive();
         visitor.visit(this);
     }
 
@@ -379,7 +379,7 @@ public class PropertyImpl extends ItemIm
         return perform(new ItemReadOperation<PropertyDefinition>() {
             @Override
             protected PropertyDefinition perform() throws RepositoryException {
-                return getPropertyDefinition();
+                return internalGetDefinition();
             }
         });
     }
@@ -393,7 +393,7 @@ public class PropertyImpl extends ItemIm
                     Value[] values = getValues();
                     if (values.length == 0) {
                         // retrieve the type from the property definition
-                        PropertyDefinition definition = getPropertyDefinition();
+                        PropertyDefinition definition = internalGetDefinition();
                         if (definition.getRequiredType() == PropertyType.UNDEFINED) {
                             return PropertyType.STRING;
                         } else {
@@ -421,6 +421,12 @@ public class PropertyImpl extends ItemIm
 
     //------------------------------------------------------------< internal >---
 
+    @Override
+    protected final PropertyDefinition internalGetDefinition() throws RepositoryException {
+        return getDefinitionProvider().getDefinition(
+                dlg.getParent().getTree(), dlg.getPropertyState(), true);
+    }
+
     /**
      * Determine the {@link javax.jcr.PropertyType} of the passed values if all are of
      * the same type.
@@ -470,11 +476,6 @@ public class PropertyImpl extends ItemIm
         });
     }
 
-    private PropertyDefinition getPropertyDefinition() throws RepositoryException {
-        return getDefinitionProvider().getDefinition(
-                dlg.getParent().getTree(), dlg.getPropertyState(), true);
-    }
-
     private void internalSetValue(@Nonnull final Value value)
             throws RepositoryException {
         checkNotNull(value);
@@ -482,7 +483,7 @@ public class PropertyImpl extends ItemIm
             @Override
             protected Void perform() throws RepositoryException {
                 // TODO: Avoid extra JCR method calls (OAK-672)
-                PropertyDefinition definition = getPropertyDefinition();
+                PropertyDefinition definition = internalGetDefinition();
                 PropertyState state = createSingleState(dlg.getName(), value, definition);
                 dlg.setState(state);
                 return null;
@@ -496,7 +497,7 @@ public class PropertyImpl extends ItemIm
             @Override
             protected Void perform() throws RepositoryException {
                 // TODO: Avoid extra JCR method calls (OAK-672)
-                PropertyDefinition definition = getPropertyDefinition();
+                PropertyDefinition definition = internalGetDefinition();
                 PropertyState state = createMultiState(dlg.getName(), type, values, definition);
                 dlg.setState(state);
                 return null;