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 an...@apache.org on 2012/04/26 15:30:27 UTC

svn commit: r1330843 - in /jackrabbit/oak/trunk/oak-jcr/src: main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java

Author: angela
Date: Thu Apr 26 13:30:26 2012
New Revision: 1330843

URL: http://svn.apache.org/viewvc?rev=1330843&view=rev
Log:
OAK-72 - Implement JCR API

- forward Node#addNode(String) to #addNode(String, String)
- dummy impl in case nt-name is null (TODO)
- dummy impl for PropertyDelegate#getDefinition()

Modified:
    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/PropertyDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java

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=1330843&r1=1330842&r2=1330843&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 Thu Apr 26 13:30:26 2012
@@ -145,16 +145,21 @@ public class NodeImpl extends ItemImpl i
      * @see Node#addNode(String)
      */
     @Override
-    public Node addNode(String relJcrPath) throws RepositoryException {
-        checkStatus();
-        NodeDelegate added = dlg.addNode(toOakPath(relJcrPath));
-        return new NodeImpl(added);
+    public Node addNode(String relPath) throws RepositoryException {
+        return addNode(relPath, null);
     }
 
     @Override
     public Node addNode(String relPath, String primaryNodeTypeName) throws RepositoryException {
         checkStatus();
-        Node childNode = addNode(relPath);
+
+        if (primaryNodeTypeName == null) {
+            // TODO retrieve matching nt from effective definition based on name-matching.
+            primaryNodeTypeName = JcrConstants.NT_UNSTRUCTURED;
+        }
+
+        NodeDelegate added = dlg.addNode(toOakPath(relPath));
+        Node childNode = new NodeImpl(added);
         childNode.setPrimaryType(primaryNodeTypeName);
         return childNode;
     }
@@ -549,8 +554,7 @@ public class NodeImpl extends ItemImpl i
         checkStatus();
 
         // TODO: check if transient changes to mixin-types are reflected here
-        NodeTypeManager ntMgr =
-                getSession().getWorkspace().getNodeTypeManager();
+        NodeTypeManager ntMgr = getSession().getWorkspace().getNodeTypeManager();
         String primaryNtName = getProperty(JcrConstants.JCR_PRIMARYTYPE).getString();
         return ntMgr.getNodeType(primaryNtName);
     }
@@ -564,8 +568,7 @@ public class NodeImpl extends ItemImpl i
 
         // TODO: check if transient changes to mixin-types are reflected here
         if (hasProperty(JcrConstants.JCR_MIXINTYPES)) {
-            NodeTypeManager ntMgr =
-                    getSession().getWorkspace().getNodeTypeManager();
+            NodeTypeManager ntMgr = getSession().getWorkspace().getNodeTypeManager();
             Value[] mixinNames = getProperty(JcrConstants.JCR_MIXINTYPES).getValues();
             NodeType[] mixinTypes = new NodeType[mixinNames.length];
             for (int i = 0; i < mixinNames.length; i++) {
@@ -628,7 +631,8 @@ public class NodeImpl extends ItemImpl i
     @Override
     public NodeDefinition getDefinition() throws RepositoryException {
         checkStatus();
-        
+
+
         // TODO
         return new NodeDefinition() {
  

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java?rev=1330843&r1=1330842&r2=1330843&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java Thu Apr 26 13:30:26 2012
@@ -19,6 +19,8 @@ package org.apache.jackrabbit.oak.jcr;
 import java.util.List;
 
 import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.PropertyDefinition;
 
 import org.apache.jackrabbit.oak.api.CoreValue;
@@ -42,7 +44,85 @@ public class PropertyDelegate extends It
 
     PropertyDefinition getDefinition() throws RepositoryException {
         // TODO
-        return null;
+        return new PropertyDefinition() {
+
+            @Override
+            public int getRequiredType() {
+                return 0;
+            }
+
+            @Override
+            public String[] getValueConstraints() {
+                // TODO
+                return new String[0];
+            }
+
+            @Override
+            public Value[] getDefaultValues() {
+                // TODO
+                return new Value[0];
+            }
+
+            @Override
+            public boolean isMultiple() {
+                // TODO
+                return propertyState.isArray();
+            }
+
+            @Override
+            public String[] getAvailableQueryOperators() {
+                // TODO
+                return new String[0];
+            }
+
+            @Override
+            public boolean isFullTextSearchable() {
+                // TODO
+                return false;
+            }
+
+            @Override
+            public boolean isQueryOrderable() {
+                // TODO
+                return false;
+            }
+
+            @Override
+            public NodeType getDeclaringNodeType() {
+                // TODO
+                return null;
+            }
+
+            @Override
+            public String getName() {
+                // TODO
+                return propertyState.getName();
+            }
+
+            @Override
+            public boolean isAutoCreated() {
+                // TODO
+                return false;
+            }
+
+            @Override
+            public boolean isMandatory() {
+                // TODO
+                return false;
+            }
+
+            @Override
+            public int getOnParentVersion() {
+                // TODO
+                return 0;
+            }
+
+            @Override
+            public boolean isProtected() {
+                // TODO
+                return false;
+            }
+        };
     }
     
     void remove() throws RepositoryException {
@@ -95,8 +175,7 @@ public class PropertyDelegate extends It
 
         if (parent == null) {
             propertyState = null;
-        }
-        else {
+        } else {
             propertyState = parent.getProperty(Paths.getName(path));
         }
     }

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1330843&r1=1330842&r2=1330843&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Thu Apr 26 13:30:26 2012
@@ -18,6 +18,7 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
+import org.apache.jackrabbit.JcrConstants;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -248,6 +249,9 @@ public class RepositoryTest extends Abst
         PropertyIterator properties = node.getProperties();
         while (properties.hasNext()) {
             Property p = properties.nextProperty();
+            if (JcrConstants.JCR_PRIMARYTYPE.equals(p.getName())) {
+                continue;
+            }
             assertTrue(propertyNames.remove(p.getName()));
             if (p.isMultiple()) {
                 for (Value v : p.getValues()) {