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 md...@apache.org on 2014/02/20 15:15:57 UTC

svn commit: r1570199 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: core/HiddenTree.java core/MutableTree.java plugins/tree/AbstractTree.java plugins/tree/ImmutableTree.java

Author: mduerig
Date: Thu Feb 20 14:15:56 2014
New Revision: 1570199

URL: http://svn.apache.org/r1570199
Log:
OAK-1440: o.a.j.o.api.Tree.toString hits hidden nodes
filter hidden items in toString

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/HiddenTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/MutableTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/AbstractTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/ImmutableTree.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/HiddenTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/HiddenTree.java?rev=1570199&r1=1570198&r2=1570199&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/HiddenTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/HiddenTree.java Thu Feb 20 14:15:56 2014
@@ -47,6 +47,15 @@ public class HiddenTree implements Tree 
         this.name = name;
     }
 
+    //------------------------------------------------------------< Object >---
+
+    @Override
+    public String toString() {
+        return getPath() + ": {}";
+    }
+
+    //------------------------------------------------------------< Tree >---
+
     @Nonnull
     @Override
     public String getName() {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/MutableTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/MutableTree.java?rev=1570199&r1=1570198&r2=1570199&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/MutableTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/MutableTree.java Thu Feb 20 14:15:56 2014
@@ -298,13 +298,6 @@ class MutableTree extends AbstractTree {
         root.updated();
     }
 
-    //-----------------------------------------------------------< Object >---
-
-    @Override
-    public String toString() {
-        return getPathInternal() + ": " + getNodeState();
-    }
-
     //---------------------------------------------------------< internal >---
     /**
      * Set the parent and name of this tree.

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/AbstractTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/AbstractTree.java?rev=1570199&r1=1570198&r2=1570199&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/AbstractTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/AbstractTree.java Thu Feb 20 14:15:56 2014
@@ -40,6 +40,7 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.reference.NodeReferenceConstants;
+import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.ConflictAnnotatingRebaseDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -158,6 +159,33 @@ public abstract class AbstractTree imple
         }
     }
 
+    //------------------------------------------------------------< Object >---
+
+    @Override
+    public String toString() {
+        return getPath() + ": " + toString(getNodeState());
+    }
+
+    protected String toString(NodeState nodeState) {
+        StringBuilder sb = new StringBuilder();
+        sb.append('{');
+        for (PropertyState p : nodeState.getProperties()) {
+            if (!isHidden(p.getName())) {
+                sb.append(' ').append(p).append(',');
+            }
+        }
+        for (ChildNodeEntry n : nodeState.getChildNodeEntries()) {
+                if(!isHidden(n.getName())) {
+                    sb.append(' ').append(n.getName()).append( " = { ... },");
+                }
+        }
+        if (sb.length() > 1) {
+            sb.deleteCharAt(sb.length() - 1);
+        }
+        sb.append('}');
+        return sb.toString();
+    }
+
     //---------------------------------------------------------------< Tree >---
 
     @Override

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/ImmutableTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/ImmutableTree.java?rev=1570199&r1=1570198&r2=1570199&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/ImmutableTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/ImmutableTree.java Thu Feb 20 14:15:56 2014
@@ -207,7 +207,7 @@ public final class ImmutableTree extends
 
     @Override
     public String toString() {
-        return "ImmutableTree '" + getName() + "':" + state.toString();
+        return "ImmutableTree '" + getName() + "':" + toString(state);
     }
 
     //--------------------------------------------------------------------------



Re: svn commit: r1570199 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: core/HiddenTree.java core/MutableTree.java plugins/tree/AbstractTree.java plugins/tree/ImmutableTree.java

Posted by Michael Dürig <md...@apache.org>.

On 21.2.14 6:27 , Jukka Zitting wrote:
> Given that the intention is to avoid exposing in toString() details
> that are not accessible through other methods, it would seem cleaner
> to implement it in terms of the publicly accessible methods:

Good point. See http://svn.apache.org/r1571194

Micha

Re: svn commit: r1570199 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: core/HiddenTree.java core/MutableTree.java plugins/tree/AbstractTree.java plugins/tree/ImmutableTree.java

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On Thu, Feb 20, 2014 at 9:15 AM,  <md...@apache.org> wrote:
> +    @Override
> +    public String toString() {
> +        return getPath() + ": " + toString(getNodeState());
> +    }
> +
> +    protected String toString(NodeState nodeState) {

Given that the intention is to avoid exposing in toString() details
that are not accessible through other methods, it would seem cleaner
to implement it in terms of the publicly accessible methods:

    for (PropertyState p : getProperties()) {
        sb.append(' ').append(p).append(',');
    }
    for (String name : getChildNames()) {
        sb.append(' ').append(name).append( " = { ... },");
    }

Otherwise it'll pretty easy to forget to update the toString() method
in case we make some changes in the way hidden content is handled.

BR,

Jukka Zitting