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 2009/05/12 13:10:50 UTC

svn commit: r773857 - /jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java

Author: angela
Date: Tue May 12 11:10:50 2009
New Revision: 773857

URL: http://svn.apache.org/viewvc?rev=773857&view=rev
Log:
JCR-2003: Add support for JCR 2.0

- new setProperty methods
- reorder methods

Modified:
    jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java

Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?rev=773857&r1=773856&r2=773857&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java Tue May 12 11:10:50 2009
@@ -342,6 +342,15 @@
     }
 
     /**
+     * @see javax.jcr.Node#setProperty(String, Binary)
+     */
+    public Property setProperty(String name, Binary value) throws RepositoryException {
+        // validation performed in subsequent method
+        Value v = (value == null ? null : session.getValueFactory().createValue(value));
+        return setProperty(name, v, PropertyType.BINARY);
+    }
+
+    /**
      * @see Node#setProperty(String, boolean)
      */
     public Property setProperty(String name, boolean value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException {
@@ -358,6 +367,15 @@
     }
 
     /**
+     * @see javax.jcr.Node#setProperty(String, BigDecimal)
+     */
+    public Property setProperty(String name, BigDecimal value) throws RepositoryException {
+        // validation performed in subsequent method
+        Value v = (value == null ? null : session.getValueFactory().createValue(value));
+        return setProperty(name, v, PropertyType.DECIMAL);
+    }
+
+    /**
      * @see Node#setProperty(String, long)
      */
     public Property setProperty(String name, long value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException {
@@ -433,12 +451,23 @@
     public NodeIterator getNodes(String namePattern) throws RepositoryException {
         checkStatus();
         ArrayList nodes = new ArrayList();
-        // traverse children using a special filtering 'collector'
+        // traverse children using a special filtering item visitor
         accept(new ChildrenCollectorFilter(namePattern, nodes, true, false, 1));
         return new NodeIteratorAdapter(nodes);
     }
 
     /**
+     * @see javax.jcr.Node#getNodes(String[])
+     */
+    public NodeIterator getNodes(String[] nameGlobs) throws RepositoryException {
+        checkStatus();
+        List nodes = new ArrayList();
+        // traverse child nodes using a filtering item visitor
+        accept(new ChildrenCollectorFilter(nameGlobs, nodes, true, false, 1));
+        return new NodeIteratorAdapter(nodes);
+    }
+
+    /**
      * @see Node#getProperty(String)
      */
     public Property getProperty(String relPath) throws PathNotFoundException, RepositoryException {
@@ -480,12 +509,24 @@
     public PropertyIterator getProperties(String namePattern) throws RepositoryException {
         checkStatus();
         ArrayList properties = new ArrayList();
-        // traverse children using a special filtering 'collector'
+        // traverse children using a filtering item visitor
         accept(new ChildrenCollectorFilter(namePattern, properties, false, true, 1));
         return new PropertyIteratorAdapter(properties);
     }
 
     /**
+     * TODO: method name is wrong! should be getProperties (Issue 736 of the pfd)
+     * @see javax.jcr.Node#getProperty(String)
+     */
+    public PropertyIterator getProperty(String[] nameGlobs) throws RepositoryException {
+        checkStatus();
+        List properties = new ArrayList();
+        // traverse child properties using a filtering item visitor
+        accept(new ChildrenCollectorFilter(nameGlobs, properties, true, false, 1));
+        return new PropertyIteratorAdapter(properties);
+    }
+
+    /**
      * @see Node#getPrimaryItem()
      */
     public Item getPrimaryItem() throws ItemNotFoundException, RepositoryException {
@@ -517,6 +558,15 @@
     }
 
     /**
+     * @see Node#getIdentifier()
+     */
+    public String getIdentifier() throws RepositoryException {
+        checkStatus();
+        // TODO: check again and add SPI method to create Node-Identifier from String
+        return getNodeEntry().getId().toString();
+    }
+
+    /**
      * @see Node#getIndex()
      */
     public int getIndex() throws RepositoryException {
@@ -536,6 +586,45 @@
     }
 
     /**
+     * @see javax.jcr.Node#getReferences(String)
+     */
+    public PropertyIterator getReferences(String name) throws RepositoryException {
+        checkStatus();
+        List refs = Arrays.asList(getNodeState().getNodeReferences());
+        if (name != null) {
+            // remove property ids that don't match the given name
+            Name qName = getQName(name);
+            refs = new ArrayList(refs);
+            for (Iterator iter = refs.iterator(); iter.hasNext();) {
+                PropertyId propId = (PropertyId) iter.next();
+                if (!propId.getName().equals(qName)) {
+                    refs.remove(propId);
+                }
+            }
+        } // else: name == null -> return all references
+
+        // create an property iterator for all or the matching property ids
+        // according to the specified name.
+        return new LazyItemIterator(getItemManager(), session.getHierarchyManager(), refs.iterator());
+    }
+
+    /**
+     * @see javax.jcr.Node#getWeakReferences()
+     */
+    public PropertyIterator getWeakReferences() throws RepositoryException {
+        // TODO: implementation missing
+        throw new UnsupportedRepositoryOperationException("JCR-1104");
+    }
+
+    /**
+     * @see javax.jcr.Node#getWeakReferences()
+     */
+    public PropertyIterator getWeakReferences(String name) throws RepositoryException {
+        // TODO: implementation missing
+        throw new UnsupportedRepositoryOperationException("JCR-1104");
+    }
+
+    /**
      * @see Node#hasNode(String)
      */
     public boolean hasNode(String relPath) throws RepositoryException {
@@ -590,6 +679,14 @@
     }
 
     /**
+     * @see javax.jcr.Node#setPrimaryType(String)
+     */
+    public void setPrimaryType(String nodeTypeName) throws RepositoryException {
+        // TODO: implementation missing
+        throw new UnsupportedRepositoryOperationException("JCR-1104");
+    }
+
+    /**
      * @see Node#getMixinNodeTypes()
      */
     public NodeType[] getMixinNodeTypes() throws RepositoryException {
@@ -1160,15 +1257,6 @@
         // lock can be inherited from a parent > do not check for node being lockable.
         checkStatus();
         return session.getLockStateManager().isLocked(getNodeState());
-    }         
-
-    /**
-     * @see Node#getIdentifier()
-     */
-    public String getIdentifier() throws RepositoryException {
-        checkStatus();
-        // TODO: check again and add SPI method to create Node-Identifier from String
-        return getNodeEntry().getId().toString();
     }
 
     /**
@@ -1188,68 +1276,6 @@
     }
 
     /**
-     * @see javax.jcr.Node#getNodes(String[])
-     */
-    public NodeIterator getNodes(String[] nameGlobs) throws RepositoryException {
-        checkStatus();
-        List nodes = new ArrayList();
-        // traverse child nodes using a filtering collector
-        accept(new ChildrenCollectorFilter(nameGlobs, nodes, true, false, 1));
-        return new NodeIteratorAdapter(nodes);
-    }
-
-    /**
-     * TODO: method name is wrong! should be getProperties (Issue 736 of the pfd)
-     * @see javax.jcr.Node#getProperty(String)
-     */
-    public PropertyIterator getProperty(String[] nameGlobs) throws RepositoryException {
-        checkStatus();
-        List properties = new ArrayList();
-        // traverse child properties using a filtering collector
-        accept(new ChildrenCollectorFilter(nameGlobs, properties, true, false, 1));
-        return new PropertyIteratorAdapter(properties);
-    }
-
-    /**
-     * @see javax.jcr.Node#getReferences(String)
-     */
-    public PropertyIterator getReferences(String name) throws RepositoryException {
-        checkStatus();
-        List refs = Arrays.asList(getNodeState().getNodeReferences());
-        if (name != null) {
-            // remove property ids that don't match the given name
-            Name qName = getQName(name);
-            refs = new ArrayList(refs);
-            for (Iterator iter = refs.iterator(); iter.hasNext();) {
-                PropertyId propId = (PropertyId) iter.next();
-                if (!propId.getName().equals(qName)) {
-                    refs.remove(propId);
-                }
-            }
-        } // else: name == null -> return all references
-
-        // create an property iterator for all or the matching property ids
-        // according to the specified name.
-        return new LazyItemIterator(getItemManager(), session.getHierarchyManager(), refs.iterator());
-    }
-
-    /**
-     * @see javax.jcr.Node#getWeakReferences()
-     */
-    public PropertyIterator getWeakReferences() throws RepositoryException {
-        // TODO: implementation missing
-        throw new UnsupportedRepositoryOperationException("JCR-1104");
-    }
-
-    /**
-     * @see javax.jcr.Node#getWeakReferences()
-     */
-    public PropertyIterator getWeakReferences(String name) throws RepositoryException {
-        // TODO: implementation missing
-        throw new UnsupportedRepositoryOperationException("JCR-1104");
-    }
-
-    /**
      * @see javax.jcr.Node#getSharedSet()
      */
     public NodeIterator getSharedSet() throws RepositoryException {
@@ -1272,30 +1298,6 @@
         throw new UnsupportedRepositoryOperationException("JCR-1104");
     }
 
-    /**
-     * @see javax.jcr.Node#setPrimaryType(String)
-     */
-    public void setPrimaryType(String nodeTypeName) throws RepositoryException {
-        // TODO: implementation missing
-        throw new UnsupportedRepositoryOperationException("JCR-1104");
-    }
-
-    /**
-     * @see javax.jcr.Node#setProperty(String, Binary)
-     */
-    public Property setProperty(String name, Binary value) throws RepositoryException {
-        // TODO: implementation missing
-        throw new UnsupportedRepositoryOperationException("JCR-1104");
-    }
-
-    /**
-     * @see javax.jcr.Node#setProperty(String, BigDecimal)
-     */
-    public Property setProperty(String name, BigDecimal value) throws RepositoryException {
-        // TODO: implementation missing
-        throw new UnsupportedRepositoryOperationException("JCR-1104");
-    }
-
     //--------------------------------------------------------< public impl >---
     /**
      *