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 re...@apache.org on 2012/04/17 14:57:26 UTC
svn commit: r1327076 - in /jackrabbit/oak/trunk: oak-it/jcr/pom.xml
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Author: reschke
Date: Tue Apr 17 12:57:26 2012
New Revision: 1327076
URL: http://svn.apache.org/viewvc?rev=1327076&view=rev
Log:
fix Node.getDepth, implement Node.getAncestor
Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1327076&r1=1327075&r2=1327076&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Tue Apr 17 12:57:26 2012
@@ -44,7 +44,6 @@
<property>
<name>known.issues</name>
<value>
-org.apache.jackrabbit.test.api.RootNodeTest#testGetDepth
org.apache.jackrabbit.test.api.NodeReadMethodsTest
org.apache.jackrabbit.test.api.NamespaceRegistryReadMethodsTest
org.apache.jackrabbit.test.api.PropertyReadMethodsTest
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=1327076&r1=1327075&r2=1327076&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 Tue Apr 17 12:57:26 2012
@@ -118,8 +118,16 @@ public class NodeImpl extends ItemImpl i
*/
@Override
public Item getAncestor(int depth) throws RepositoryException {
- // todo implement getAncestor
- return null;
+ int current = getDepth();
+ if (depth < 0 || depth > current) {
+ throw new ItemNotFoundException("ancestor at depth " + depth + " does not exist");
+ }
+ TransientNodeState ancestor = getTransientNodeState();
+ while (depth < current) {
+ ancestor = ancestor.getParent();
+ current -= 1;
+ }
+ return new NodeImpl(sessionContext, ancestor);
}
/**
@@ -127,7 +135,7 @@ public class NodeImpl extends ItemImpl i
*/
@Override
public int getDepth() throws RepositoryException {
- return Paths.getDepth(path());
+ return Paths.getDepth(getPath());
}
/**