You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2006/08/17 18:18:02 UTC

svn commit: r432278 - in /jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state: NodeState.java WorkspaceItemStateFactory.java

Author: angela
Date: Thu Aug 17 09:18:01 2006
New Revision: 432278

URL: http://svn.apache.org/viewvc?rev=432278&view=rev
Log:
work in progress

- NodeState: rename addNodeReferences to setNodeReferences
-            'set' is not possible if NodeState is transient
-            since NodeReferences are not copied to overlaying state, refs
             must be retrieved from overlayed state if present.

Modified:
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java?rev=432278&r1=432277&r2=432278&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java Thu Aug 17 09:18:01 2006
@@ -812,12 +812,31 @@
         }
     }
 
-    void addNodeReferences(NodeReferences references) {
-        this.references = references;
+    /**
+     * Return the <code>NodeReferences</code> present on this state or
+     * <code>null</code>.
+     *
+     * @return references
+     */
+    NodeReferences getNodeReferences() {
+        if (hasOverlayedState()) {
+            return ((NodeState)getOverlayedState()).references;
+        } else {
+            return references;
+        }
     }
 
-    NodeReferences getNodeReferences() {
-        return references;
+    /**
+     * Set the <code>NodeReferences</code> for this state.
+     *
+     * @param references
+     */
+    void setNodeReferences(NodeReferences references) {
+        if (isTransient()) {
+            // TODO: check again
+            throw new UnsupportedOperationException("Cannot set references to a transient node state.");
+        }
+        this.references = references;
     }
 
     /**

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java?rev=432278&r1=432277&r2=432278&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java Thu Aug 17 09:18:01 2006
@@ -142,7 +142,7 @@
             // Therefore build a NodeReference instance and add it to the state.
             if (uuid != null) {
                 PropertyId[] references = info.getReferences();
-                state.addNodeReferences(new NodeReferencesImpl(info.getId(), references));
+                state.setNodeReferences(new NodeReferencesImpl(info.getId(), references));
             }
 
             // copied from local-state-mgr TODO... check