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 ju...@apache.org on 2013/02/08 19:17:48 UTC

svn commit: r1444176 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java

Author: jukka
Date: Fri Feb  8 18:17:47 2013
New Revision: 1444176

URL: http://svn.apache.org/r1444176
Log:
OAK-593: Segment-based MK

Implement iteration over properties and child nodes

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1444176&r1=1444175&r2=1444176&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java Fri Feb  8 18:17:47 2013
@@ -20,15 +20,21 @@ import static com.google.common.base.Pre
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
+import org.apache.jackrabbit.oak.plugins.segment.MapRecord.Entry;
+import org.apache.jackrabbit.oak.spi.state.AbstractNodeState;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
 
-class SegmentNodeState implements NodeState {
+import com.google.common.base.Function;
+import com.google.common.collect.Iterables;
+
+class SegmentNodeState extends AbstractNodeState {
 
     private final SegmentReader reader;
 
@@ -62,8 +68,15 @@ class SegmentNodeState implements NodeSt
 
     @Override @Nonnull
     public Iterable<? extends PropertyState> getProperties() {
-        // TODO Auto-generated method stub
-        return null;
+        return Iterables.transform(
+                properties.getEntries(reader),
+                new Function<MapRecord.Entry, PropertyState>() {
+                    @Override @Nullable
+                    public PropertyState apply(@Nullable Entry input) {
+                        return new SegmentPropertyState(
+                                reader, input.getKey(), input.getValue());
+                    }
+                });
     }
 
     @Override
@@ -90,14 +103,28 @@ class SegmentNodeState implements NodeSt
 
     @Override
     public Iterable<String> getChildNodeNames() {
-        // TODO Auto-generated method stub
-        return null;
+        return Iterables.transform(
+                childNodes.getEntries(reader),
+                new Function<MapRecord.Entry, String>() {
+                    @Override @Nullable
+                    public String apply(@Nullable Entry input) {
+                        return input.getKey();
+                    }
+                });
     }
 
     @Override @Nonnull
     public Iterable<? extends ChildNodeEntry> getChildNodeEntries() {
-        // TODO Auto-generated method stub
-        return null;
+        return Iterables.transform(
+                childNodes.getEntries(reader),
+                new Function<MapRecord.Entry, ChildNodeEntry>() {
+                    @Override @Nullable
+                    public ChildNodeEntry apply(@Nullable Entry input) {
+                        return new MemoryChildNodeEntry(
+                                input.getKey(),
+                                new SegmentNodeState(reader, input.getValue()));
+                    }
+                });
     }
 
     @Override @Nonnull
@@ -105,10 +132,4 @@ class SegmentNodeState implements NodeSt
         return new MemoryNodeBuilder(this);
     }
 
-    @Override
-    public void compareAgainstBaseState(NodeState base, NodeStateDiff diff) {
-        // TODO Auto-generated method stub
-        
-    }
-
 }

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java?rev=1444176&r1=1444175&r2=1444176&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/RecordTest.java Fri Feb  8 18:17:47 2013
@@ -32,12 +32,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
-import org.junit.Assert;
 import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterators;
 import com.google.common.collect.Maps;
 
 public class RecordTest {