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/09 16:21:41 UTC

svn commit: r430059 - in /jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi: ItemManagerImpl.java LazyItemIterator.java NodeImpl.java state/NodeReferences.java version/VersionHistoryImpl.java

Author: angela
Date: Wed Aug  9 07:21:38 2006
New Revision: 430059

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

- remove commented code
- adjust usages of LazyItemIterator

TODO redefined handling of references

Modified:
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/LazyItemIterator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java?rev=430059&r1=430058&r2=430059&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java Wed Aug  9 07:21:38 2006
@@ -212,20 +212,6 @@
         session.checkIsAlive();
         checkAccess(parentState, true);
 
-        /*
-        // REMOVED. left check for access to Iterator (getSize() returns -1)
-        ArrayList childIds = new ArrayList();
-        Iterator iter = parentState.getChildNodeEntries().iterator();
-
-        while (iter.hasNext()) {
-            ChildNodeEntry entry = (ChildNodeEntry) iter.next();
-            NodeId id = entry.getId();
-            // check read access
-            if (session.getAccessManager().canRead(id)) {
-                childIds.add(id);
-            }
-        }
-        */
         return new LazyItemIterator(this, parentState.getChildNodeEntries());
     }
 
@@ -260,25 +246,6 @@
         session.checkIsAlive();
         checkAccess(parentState, true);
 
-        /*
-        // REMOVED. left check for access to Iterator (getSize() returns -1)
-        ArrayList childIds = new ArrayList();
-        Iterator iter = parentState.getPropertyNames().iterator();
-
-        while (iter.hasNext()) {
-            QName propName = (QName) iter.next();
-            try {
-                PropertyId id = parentState.getPropertyState(propName).getPropertyId();
-                // check read access
-                if (session.getAccessManager().canRead(id)) {
-                    childIds.add(id);
-                }
-            } catch (ItemStateException e) {
-                // should not occur.
-                throw new RepositoryException(e);
-            }
-        }
-        */
         return new LazyItemIterator(this, parentState.getPropertyEntries());
     }
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/LazyItemIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/LazyItemIterator.java?rev=430059&r1=430058&r2=430059&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/LazyItemIterator.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/LazyItemIterator.java Wed Aug  9 07:21:38 2006
@@ -67,11 +67,11 @@
      * Creates a new <code>LazyItemIterator</code> instance.
      *
      * @param itemMgr item manager
-     * @param stateList Collection of item states
+     * @param itemStates Collection of item states
      */
-    public LazyItemIterator(ItemManager itemMgr, Collection stateList) {
+    public LazyItemIterator(ItemManager itemMgr, Collection itemStates) {
         this.itemMgr = itemMgr;
-        this.stateList = new ArrayList(stateList);
+        this.stateList = new ArrayList(itemStates);
         // prefetch first item
         pos = 0;
         prefetchNext();

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?rev=430059&r1=430058&r2=430059&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java Wed Aug  9 07:21:38 2006
@@ -92,6 +92,7 @@
 import java.util.List;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Iterator;
 
 /**
  * <code>NodeImpl</code>...
@@ -561,9 +562,9 @@
         try {
             if (itemStateMgr.hasNodeReferences(getNodeId())) {
                 NodeReferences refs = itemStateMgr.getNodeReferences(getNodeId());
-                // refs.getReferences() returns a list of PropertyId's
-                List idList = refs.getReferences();
-                return new LazyItemIterator(itemMgr, idList);
+                // refs.getReferences() returns a list of Property states
+                Collection refStates = refs.getReferences();
+                return new LazyItemIterator(itemMgr, refStates);
             } else {
                 // there are no references, return empty iterator
                 return IteratorHelper.EMPTY;
@@ -871,11 +872,26 @@
         // make sure the workspace exists and is accessible for this session.
         session.checkAccessibleWorkspace(srcWorkspace);
 
+        // TODO: improve... (and review return value of VM.merge)
         Collection failedIds = session.getVersionManager().merge(getNodeId(), srcWorkspace, bestEffort);
         if (failedIds.isEmpty()) {
             return IteratorHelper.EMPTY;
         } else {
-            return new LazyItemIterator(itemMgr, failedIds);
+            List failedStates = new ArrayList();
+            Iterator it = failedIds.iterator();
+            while (it.hasNext()) {
+                try {
+                    ItemState state = session.getItemStateManager().getItemState((NodeId) it.next());
+                    if (state.isNode()) {
+                        failedStates.add(state);
+                    } else {
+                        throw new RepositoryException("Unexpected error: NodeState expected.");
+                    }
+                } catch (ItemStateException e) {
+                    throw new RepositoryException("Unexpected error", e);
+                }
+            }
+            return new LazyItemIterator(itemMgr, failedStates);
         }
     }
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java?rev=430059&r1=430058&r2=430059&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java Wed Aug  9 07:21:38 2006
@@ -18,7 +18,7 @@
 
 import org.apache.jackrabbit.spi.NodeId;
 
-import java.util.List;
+import java.util.Collection;
 
 /**
  * <code>NodeReferences</code>...
@@ -42,7 +42,8 @@
     public boolean hasReferences();
 
     /**
-     * @return the list of references
+     * @return the collection of states referring to the node identified by this
+     * <code>NodeReference</code>.
      */
-    public List getReferences();
+    public Collection getReferences();
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java?rev=430059&r1=430058&r2=430059&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java Wed Aug  9 07:21:38 2006
@@ -126,16 +126,20 @@
      */
     public VersionIterator getAllVersions() throws RepositoryException {
         Iterator childIter = vhState.getChildNodeEntries().iterator();
-        Set versionIds = new HashSet();
+        Set versionStates = new HashSet();
 
         // all child-nodes except from jcr:versionLabels point to Versions.
         while (childIter.hasNext()) {
             ChildNodeEntry entry = (ChildNodeEntry) childIter.next();
             if (!QName.JCR_VERSIONLABELS.equals(entry.getName())) {
-                versionIds.add(entry.getId());
+                try {
+                    versionStates.add(entry.getNodeState());
+                } catch (ItemStateException e) {
+                    throw new RepositoryException(e);
+                }
             }
         }
-        return new LazyItemIterator(itemMgr, versionIds);
+        return new LazyItemIterator(itemMgr, versionStates);
     }
 
     /**