changeset 12:df42dca47c3e

rename and commit
author Shoshi TAMAKI
date Fri, 14 Dec 2012 21:23:23 +0900
parents 5f763f32940e
children a46ff0114a9e
files src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/AttributesImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ChangeSetImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ChildrenImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChangeSet.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraverserProvider.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ModifiedTreeEditorImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/NodeImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeEditorImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeImpl.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeRepository.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeStoreImpl.java
diffstat 19 files changed, 300 insertions(+), 242 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java	Fri Dec 14 21:23:23 2012 +0900
@@ -1,10 +1,8 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
-
 public interface ChangeSet
 {
-	public Tree getTree();
+	public TraversableTree getTree();
 	public ChangeSet prev();
 	
 	public String uuid();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableTree.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,9 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversable;
+
+public interface TraversableTree extends Tree , Traversable
+{
+
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Fri Dec 14 21:23:23 2012 +0900
@@ -1,12 +1,11 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store;
 
 import java.nio.ByteBuffer;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeTransformer;
 
 public interface TreeEditor
 {
-	public Tree getTree();
+	public TraversableTree getTree();
 	public Result appendChildBehindOf(NodePath _path);
 	public Result appendChildInfrontOf(NodePath _path);
 	public Result deleteChild(NodePath _path);
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/AttributesImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
-
-import java.nio.ByteBuffer;
-
-import fj.Ord;
-import fj.data.Option;
-import fj.data.TreeMap;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
-
-public class AttributesImpl implements Attributes
-{
-	private final TreeMap<String,ByteBuffer> attrs;
-	private static final TreeMap<String,ByteBuffer> EMPTY = TreeMap.empty(Ord.stringOrd);
-	
-	public AttributesImpl()
-	{
-		this(EMPTY);
-	}
-	
-	private AttributesImpl(TreeMap<String,ByteBuffer> _attrs)
-	{
-		attrs = _attrs;
-	}
-	
-	public AttributesImpl remove(String _key)
-	{
-		return new AttributesImpl(attrs.delete(_key));
-	}
-	
-	public AttributesImpl put(String _key,ByteBuffer _value)
-	{
-		return new AttributesImpl(attrs.set(_key,_value));
-	}
-
-	@Override
-	public ByteBuffer get(String _key)
-	{
-		Option<ByteBuffer> result = attrs.get(_key);
-		return result.isSome() ? result.some() : null;
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ChangeSetImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
-
-import fj.data.List;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-
-public class ChangeSetImpl implements ChangeSet
-{
-	private final ChangeSet prev;
-	private final String uuid;
-	private final long revision;
-	
-	private final List<Command> commands;
-	private final Tree tree;
-	
-	public ChangeSetImpl(Tree _tree,List<Command> _commands,String _uuid,long _revision,ChangeSet _prev)
-	{
-		tree = _tree;
-		commands = _commands;
-		uuid = _uuid;
-		revision = _revision;
-		prev = _prev;
-	}
-
-	@Override
-	public ChangeSet prev()
-	{
-		return prev;
-	}
-
-	@Override
-	public String uuid()
-	{
-		return uuid;
-	}
-
-	@Override
-	public long revision()
-	{
-		return revision;
-	}
-
-	@Override
-	public Iterable<Command> getCommands()
-	{
-		return commands;
-	}
-
-	@Override
-	public Tree getTree()
-	{
-		return tree;
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ChildrenImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
-
-import java.util.Iterator;
-
-import fj.P2;
-import fj.data.List;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
-
-public class ChildrenImpl implements Children
-{
-	private final List<Node> children;
-	private static final List<Node> EMPTY = List.nil();
-	
-	public ChildrenImpl()
-	{
-		this(EMPTY);
-	}
-	
-	public ChildrenImpl(List<Node> _children)
-	{
-		children = _children;
-	}
-	
-	public ChildrenImpl add(Node _newNode)
-	{
-		return new ChildrenImpl(children.snoc(_newNode));
-	}
-	
-	public ChildrenImpl insert(Node _newNode,int _pos) 
-	{
-		check(_pos);
-		
-		P2<List<Node>,List<Node>> split = children.splitAt(_pos);
-		List<Node> newChildren = split._1().snoc(_newNode).append(split._2());
-		
-		return new ChildrenImpl(newChildren);
-	}
-	
-	public ChildrenImpl delete(int _pos)
-	{
-		check(_pos);
-		
-		P2<List<Node>,List<Node>> split = children.splitAt(_pos);
-		List<Node> newChildren = split._1().init().append(split._2());
-		
-		return new ChildrenImpl(newChildren);
-	}
-	
-	public void check(int _pos)
-	{
-		if(children.length() < _pos){
-			throw new IllegalArgumentException("_pos > length");
-		}
-	}
-
-	@Override
-	public Iterator<Node> iterator()
-	{
-		return null;
-	}
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,42 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import java.nio.ByteBuffer;
+
+import fj.Ord;
+import fj.data.Option;
+import fj.data.TreeMap;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
+
+public class DefaultAttributes implements Attributes
+{
+	private final TreeMap<String,ByteBuffer> attrs;
+	private static final TreeMap<String,ByteBuffer> EMPTY = TreeMap.empty(Ord.stringOrd);
+	
+	public DefaultAttributes()
+	{
+		this(EMPTY);
+	}
+	
+	private DefaultAttributes(TreeMap<String,ByteBuffer> _attrs)
+	{
+		attrs = _attrs;
+	}
+	
+	public DefaultAttributes remove(String _key)
+	{
+		return new DefaultAttributes(attrs.delete(_key));
+	}
+	
+	public DefaultAttributes put(String _key,ByteBuffer _value)
+	{
+		return new DefaultAttributes(attrs.set(_key,_value));
+	}
+
+	@Override
+	public ByteBuffer get(String _key)
+	{
+		Option<ByteBuffer> result = attrs.get(_key);
+		return result.isSome() ? result.some() : null;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChangeSet.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,55 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import fj.data.List;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TraversableTree;
+
+public class DefaultChangeSet implements ChangeSet
+{
+	private final ChangeSet prev;
+	private final String uuid;
+	private final long revision;
+	
+	private final List<Command> commands;
+	private final TraversableTree tree;
+	
+	public DefaultChangeSet(TraversableTree _tree,List<Command> _commands,String _uuid,long _revision,ChangeSet _prev)
+	{
+		tree = _tree;
+		commands = _commands;
+		uuid = _uuid;
+		revision = _revision;
+		prev = _prev;
+	}
+
+	@Override
+	public ChangeSet prev()
+	{
+		return prev;
+	}
+
+	@Override
+	public String uuid()
+	{
+		return uuid;
+	}
+
+	@Override
+	public long revision()
+	{
+		return revision;
+	}
+
+	@Override
+	public Iterable<Command> getCommands()
+	{
+		return commands;
+	}
+
+	@Override
+	public TraversableTree getTree()
+	{
+		return tree;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,63 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import java.util.Iterator;
+
+import fj.P2;
+import fj.data.List;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+
+public class DefaultChildren implements Children
+{
+	private final List<Node> children;
+	private static final List<Node> EMPTY = List.nil();
+	
+	public DefaultChildren()
+	{
+		this(EMPTY);
+	}
+	
+	public DefaultChildren(List<Node> _children)
+	{
+		children = _children;
+	}
+	
+	public DefaultChildren add(Node _newNode)
+	{
+		return new DefaultChildren(children.snoc(_newNode));
+	}
+	
+	public DefaultChildren insert(Node _newNode,int _pos) 
+	{
+		check(_pos);
+		
+		P2<List<Node>,List<Node>> split = children.splitAt(_pos);
+		List<Node> newChildren = split._1().snoc(_newNode).append(split._2());
+		
+		return new DefaultChildren(newChildren);
+	}
+	
+	public DefaultChildren delete(int _pos)
+	{
+		check(_pos);
+		
+		P2<List<Node>,List<Node>> split = children.splitAt(_pos);
+		List<Node> newChildren = split._1().init().append(split._2());
+		
+		return new DefaultChildren(newChildren);
+	}
+	
+	public void check(int _pos)
+	{
+		if(children.length() < _pos){
+			throw new IllegalArgumentException("_pos > length");
+		}
+	}
+
+	@Override
+	public Iterator<Node> iterator()
+	{
+		return null;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,29 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+
+public class DefaultNode implements Node
+{
+	public DefaultNode attrs;
+	public ChildrenImpl children;
+	
+	public DefaultNode()
+	{
+		attrs = new DefaultAttributes();
+		children = new DefaultChildren();
+	}
+
+	@Override
+	public Children getChildren()
+	{
+		return children;
+	}
+
+	@Override
+	public Attributes getAttributes()
+	{
+		return attrs;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,32 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TraversableTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraverseEvaluator;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraverseResult;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
+
+public class DefaultTraversableTree implements TraversableTree
+{
+	private final Tree tree;
+	private final Traverser traverser;
+	
+	public DefaultTraversableTree(Tree _tree,Traverser _traverser)
+	{
+		tree = _tree;
+		traverser = _traverser;
+	}
+
+	@Override
+	public Node getRoot()
+	{
+		return tree.getRoot();
+	}
+
+	@Override
+	public Iterable<TraverseResult> traverse(TraverseEvaluator _e)
+	{
+		return traverser.traverse(tree,_e);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraverserProvider.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,13 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
+
+public class DefaultTraverserProvider implements TraverserProvider
+{
+	@Override
+	public Traverser newTraverser()
+	{
+		return new DefaultTraverser();
+	}
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ModifiedTreeEditorImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/ModifiedTreeEditorImpl.java	Fri Dec 14 21:23:23 2012 +0900
@@ -1,18 +1,18 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
 
 import java.nio.ByteBuffer;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Result;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeTransformer;
 
-public class ModifiedTreeEditorImpl implements TreeEditor
+class ModifiedTreeEditorImpl implements TreeEditor
 {
 
 	@Override
-	public Tree getTree() {
-		// TODO Auto-generated method stub
+	public Tree getTree()
+	{
 		return null;
 	}
 
@@ -42,16 +42,21 @@
 	}
 
 	@Override
-	public Result deleteAttribute(NodePath _path, ByteBuffer _key,
-			ByteBuffer _value) {
-		// TODO Auto-generated method stub
+	public Result deleteAttribute(NodePath _path, ByteBuffer _key,ByteBuffer _value)
+	{
 		return null;
 	}
 
 	@Override
-	public boolean success() {
-		// TODO Auto-generated method stub
+	public boolean success()
+	{
 		return false;
 	}
 
+	@Override
+	public Result edit(NodePath _path, NodeTransformer _transformer)
+	{
+		return null;
+	}
+
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/NodeImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
-
-public class NodeImpl implements Node
-{
-	public AttributesImpl attrs;
-	public ChildrenImpl children;
-	
-	public NodeImpl()
-	{
-		attrs = new AttributesImpl();
-	}
-
-	@Override
-	public Children getChildren()
-	{
-		return children;
-	}
-
-	@Override
-	public Attributes getAttributes()
-	{
-		return attrs;
-	}
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java	Fri Dec 14 21:23:23 2012 +0900
@@ -0,0 +1,8 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
+
+public interface TraverserProvider
+{
+	public Traverser newTraverser();
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeEditorImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeEditorImpl.java	Fri Dec 14 21:23:23 2012 +0900
@@ -1,26 +1,29 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
 
 import java.nio.ByteBuffer;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Result;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TraversableTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeTransformer;
 
 public class TreeEditorImpl implements TreeEditor
 {
-	private ChangeSet currentChangeSet;
+	private final TreeRepository repo;
+	private final ChangeSet tip;
 	
-	public TreeEditorImpl(ChangeSet _changeSet)
+	public TreeEditorImpl(TreeRepository _repo)
 	{
-		currentChangeSet = _changeSet;
+		repo = _repo;
+		tip = _repo.getCurrentChangeSet();
 	}
 
 	@Override
-	public Tree getTree()
+	public TraversableTree getTree()
 	{
-		return currentChangeSet.getTree();
+		return tip.getTree();
 	}
 	
 	@Override
@@ -42,16 +45,14 @@
 	}
 
 	@Override
-	public Result putAttribute(NodePath _path, ByteBuffer _key,
-			ByteBuffer _value) {
-		// TODO Auto-generated method stub
+	public Result putAttribute(NodePath _path, ByteBuffer _key,ByteBuffer _value)
+	{
 		return null;
 	}
 
 	@Override
-	public Result deleteAttribute(NodePath _path, ByteBuffer _key,
-			ByteBuffer _value) {
-		// TODO Auto-generated method stub
+	public Result deleteAttribute(NodePath _path, ByteBuffer _key,ByteBuffer _value)
+	{
 		return null;
 	}
 
@@ -61,4 +62,10 @@
 		return false;
 	}
 
+	@Override
+	public Result edit(NodePath _path, NodeTransformer _transformer)
+	{
+		return null;
+	}
+
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
-
-public class TreeImpl implements Tree
-{
-	private final NodeImpl root;
-	
-	public static final TreeImpl EMPTY = new TreeImpl();
-	
-	public TreeImpl()
-	{
-		root = new NodeImpl();
-	}
-
-	@Override
-	public Node getRoot()
-	{
-		return root;
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeRepository.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeRepository.java	Fri Dec 14 21:23:23 2012 +0900
@@ -11,10 +11,12 @@
 {
 	private final AtomicReference<ChangeSetImpl> changeSet;
 	
-	public TreeRepository()
+	public TreeRepository(TraverserProvider _provider)
 	{
 		List<Command> emptyCommands = List.nil();
 		
+		TraversableTreeImpl ttree = new TraversableTreeImpl(_provider);
+		
 		changeSet = new AtomicReference<ChangeSetImpl>(
 				new ChangeSetImpl(TreeImpl.EMPTY,emptyCommands,
 						Constants.DEFAULT_OWNER,Constants.DEFAULT_REVISION_START_NUMBER,null)
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeStoreImpl.java	Fri Dec 14 20:10:48 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeStoreImpl.java	Fri Dec 14 21:23:23 2012 +0900
@@ -1,9 +1,9 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
 
-import java.util.concurrent.atomic.AtomicReference;
-
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeStore;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
 
 public class TreeStoreImpl implements TreeStore
 {
@@ -17,6 +17,12 @@
 	@Override
 	public TreeEditor getCurrentTree()
 	{
-		return new TreeEditorImpl(repository.getCurrentChangeSet());
+		return new TreeEditorImpl(repository);
+	}
+
+	@Override
+	public Traverser getTraverser()
+	{
+		return new DefaultTraverser();
 	}
 }