changeset 27:5f4172d6fb8b

clean up
author Shoshi TAMAKI
date Mon, 14 Jan 2013 04:07:15 +0900
parents 075d6418e359
children f4be99977be2
files src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeList.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeListReader.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeListWriter.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/PersistentProvider.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/Result.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeList.java 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/TreeStore.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChangeList.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/DefaultTreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeStore.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/TreeRepository.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java
diffstat 26 files changed, 180 insertions(+), 194 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,6 +1,6 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
-public interface Children<T extends Node> extends Iterable<T>
+public interface Children extends Iterable<Node>
 {
 	public int size();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,12 +1,9 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
-public interface Node<T extends Node<T>>
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Parent;
+
+public interface Node extends Parent<Node>
 {
-	public Children<T> getChildren();
+	public Children getChildren();
 	public Attributes getAttributes();
-}
-
-interface Container<T>
-{
-	
-}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeList.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,7 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
+
+public interface ChangeList extends Iterable<Operation>
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeListReader.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,7 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
+
+public interface ChangeListReader
+{
+	public ChangeListReader newReader();
+	public ChangeList read();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/ChangeListWriter.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,6 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
+
+public interface ChangeListWriter
+{
+	public Result write();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/PersistentProvider.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,7 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
+
+public interface PersistentProvider
+{
+	public ChangeListReader getReader();
+	public ChangeListWriter getWriter();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/Result.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,6 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
+
+public class Result
+{
+	public static Result SUCCESS = new Result();
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeList.java	Mon Jan 14 03:22:59 2013 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-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.store.operations.Operation;
-
-public interface ChangeList
-{
-	public Tree getTree();
-	public ChangeList prev();
-	
-	public String uuid();
-	public long revision();
-	
-	public Iterable<Operation> getOperations();
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,17 @@
+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.persistent.ChangeList;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
+
+public interface ChangeSet
+{
+	public Tree getTree();
+	public ChangeSet prev();
+	public ChangeList getChangeList();
+	
+	public String uuid();
+	public long revision();
+	
+	public Iterable<Operation> getOperations();
+}
--- /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	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,8 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversable;
+
+public interface TraversableTree extends Traversable<Node>
+{
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Mon Jan 14 04:07:15 2013 +0900
@@ -7,7 +7,7 @@
 
 public interface TreeEditor
 {
-	public Tree getTree();
+	public TraversableTree getTree();
 	public Either<Error,TreeEditor> appendChild(NodePath _path,int _pos);
 	public Either<Error,TreeEditor> deleteChild(NodePath _path,int _pos);
 	public Either<Error,TreeEditor> putAttribute(NodePath _path,String _key,ByteBuffer _value);
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeStore.java	Mon Jan 14 03:22:59 2013 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
-
-public interface TreeStore
-{
-	public TreeEditor getCurrentTree();
-	public Traverser getTraverser();
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChangeList.java	Mon Jan 14 03:22:59 2013 +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.ChangeList;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
-
-public class DefaultChangeList implements ChangeList
-{
-	private final ChangeList prev;
-	private final String uuid;
-	private final long revision;
-	
-	private final List<Operation> operations;
-	private final Tree tree;
-	
-	public DefaultChangeList(Tree _tree,List<Operation> _operations,String _uuid,long _revision,ChangeList _prev)
-	{
-		tree = _tree;
-		operations = _operations;
-		uuid = _uuid;
-		revision = _revision;
-		prev = _prev;
-	}
-
-	@Override
-	public ChangeList prev()
-	{
-		return prev;
-	}
-
-	@Override
-	public String uuid()
-	{
-		return uuid;
-	}
-
-	@Override
-	public long revision()
-	{
-		return revision;
-	}
-
-	@Override
-	public Iterable<Operation> getOperations()
-	{
-		return operations;
-	}
-
-	@Override
-	public Tree 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/DefaultChangeSet.java	Mon Jan 14 04:07:15 2013 +0900
@@ -0,0 +1,61 @@
+package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
+
+public class DefaultChangeSet implements ChangeSet
+{
+	private final ChangeSet prev;
+	private final String uuid;
+	private final long revision;
+	
+	private final ChangeList changeList;
+	private final Tree tree;
+	
+	public DefaultChangeSet(Tree _tree,ChangeList _changeList,String _uuid,long _revision,ChangeSet _prev)
+	{
+		tree = _tree;
+		uuid = _uuid;
+		revision = _revision;
+		prev = _prev;
+		changeList = _changeList;
+	}
+
+	@Override
+	public ChangeSet prev()
+	{
+		return prev;
+	}
+
+	@Override
+	public String uuid()
+	{
+		return uuid;
+	}
+
+	@Override
+	public long revision()
+	{
+		return revision;
+	}
+
+	@Override
+	public Iterable<Operation> getOperations()
+	{
+		return changeList;
+	}
+
+	@Override
+	public Tree getTree()
+	{
+		return tree;
+	}
+
+	@Override
+	public ChangeList getChangeList()
+	{
+		return changeList;
+	}
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java	Mon Jan 14 04:07:15 2013 +0900
@@ -69,8 +69,8 @@
 	}
 
 	@Override
-	public Iterator<EditableNode> iterator()
+	public Iterator<Node> iterator()
 	{
-		return (new IterableWrapper<EditableNode>(children)).iterator();
+		return (new IterableWrapper<Node>(children)).iterator();
 	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,12 +1,17 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
 
 import java.nio.ByteBuffer;
+import java.util.Iterator;
+
 import fj.Ord;
 import fj.data.List;
 import fj.data.TreeMap;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Children;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableWrapper;
 
 public class DefaultNode implements EditableNode
 {
@@ -38,4 +43,22 @@
 	{
 		return new DefaultAttributes(children,attrs);
 	}
+
+	@Override
+	public Children<Node> children()
+	{
+		return new Children<Node>(){
+			@Override
+			public Iterator<Node> iterator()
+			{
+				return (new IterableWrapper<Node>(children)).iterator();
+			}
+
+			@Override
+			public int size()
+			{
+				return children.length();
+			}
+		};
+	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java	Mon Jan 14 04:07:15 2013 +0900
@@ -3,30 +3,27 @@
 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.Evaluator;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraverseEvaluator;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
 public class DefaultTraversableTree implements TraversableTree
 {
 	private final Tree tree;
-	private final Traverser traverser;
+	private final Traverser<Node> traverser;
 	
-	public DefaultTraversableTree(Tree _tree,Traverser _traverser)
+	public DefaultTraversableTree(Tree _tree,Traverser<Node> _traverser)
 	{
 		tree = _tree;
 		traverser = _traverser;
 	}
 
 	@Override
-	public Node getRoot()
+	public Either<Error,Traversal<Node>> traverse(Evaluator<Node> _e)
 	{
-		return tree.getRoot();
-	}
-
-	@Override
-	public Iterable<Traversal> traverse(TraverseEvaluator _e)
-	{
-		return traverser.traverse(tree,_e);
+		Node root = tree.getRoot();
+		return traverser.traverse(root,_e);
 	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraverserProvider.java	Mon Jan 14 03:22:59 2013 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-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/DefaultTreeEditor.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java	Mon Jan 14 04:07:15 2013 +0900
@@ -5,7 +5,8 @@
 import java.util.Iterator;
 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.ChangeList;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
+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.TraversableTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
@@ -15,7 +16,6 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverseEvaluator;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
@@ -25,19 +25,17 @@
 
 public class DefaultTreeEditor implements TreeEditor
 {
-	private final TreeRepository repo;
-	private final ChangeList tip;
+	private final ChangeSet tip;
 	
-	public DefaultTreeEditor(TreeRepository _repo)
+	public DefaultTreeEditor(ChangeSet _tip,ChangeListWriter _writer)
 	{
-		repo = _repo;
-		tip = _repo.getCurrentChangeList();
+		tip = _tip;
 	}
 
 	@Override
 	public TraversableTree getTree()
 	{
-		return new DefaultTraversableTree(tip.getTree(),new DefaultTraverser());
+		return new DefaultTraversableTree(tip.getTree(),new DefaultTraverser<Node>());
 	}
 	
 	@Override
@@ -89,6 +87,7 @@
 	{
 		for(Node node : _traversal){
 			DefaultNode defNode = (DefaultNode)node;
+			
 		}
 		return null;
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeStore.java	Mon Jan 14 03:22:59 2013 +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.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 DefaultTreeStore implements TreeStore
-{
-	public TreeRepository repository;
-	
-	public DefaultTreeStore()
-	{
-		repository = new TreeRepository();
-	}
-
-	@Override
-	public TreeEditor getCurrentTree()
-	{
-		return new DefaultTreeEditor(repository);
-	}
-
-	@Override
-	public Traverser getTraverser()
-	{
-		return new DefaultTraverser();
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java	Mon Jan 14 03:22:59 2013 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-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/TreeRepository.java	Mon Jan 14 03:22:59 2013 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-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.Constants;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
-
-import fj.data.List;
-
-public class TreeRepository
-{
-	private final AtomicReference<DefaultChangeList> changeList;
-	
-	public TreeRepository()
-	{
-		List<Operation> emptyCommands = List.nil();
-		
-		changeList = new AtomicReference<DefaultChangeList>(
-				new DefaultChangeList(DefaultTree.EMPTY,emptyCommands,
-						Constants.DEFAULT_OWNER,Constants.DEFAULT_REVISION_START_NUMBER,null)
-			);
-	}
-	
-	public DefaultChangeList getCurrentChangeList()
-	{
-		return changeList.get();
-	}
-	
-	public boolean commitChangeList(DefaultChangeList _newChangeList,DefaultChangeList _currentChangeList)
-	{
-		return changeList.compareAndSet(_currentChangeList,_newChangeList);
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,6 +1,8 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger;
 
 import java.util.Iterator;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.AppendChildAtOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation;
@@ -29,9 +31,9 @@
 	}
 
 	@Override
-	public Iterator<EditableNode> iterator()
+	public Iterator<Node> iterator()
 	{
-		IterableWrapper<EditableNode> wrapper = new IterableWrapper<EditableNode>(this);
+		IterableWrapper<Node> wrapper = new IterableWrapper<Node>(this);
 		return wrapper.iterator();
 	}
 
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,8 +1,10 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger;
 
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Children;
 
 public class LoggingNode implements EditableNode
 {
@@ -36,4 +38,10 @@
 	{
 		return log;
 	}
+
+	@Override
+	public Children<Node> children()
+	{
+		return wrap.children();
+	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java	Mon Jan 14 04:07:15 2013 +0900
@@ -5,7 +5,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 
-public interface EditableChildren extends Children<EditableNode>
+public interface EditableChildren extends Children
 {
 	public Either<Error,EditableNode> addNewChildAt(int _pos);
 	public Either<Error,EditableNode> deleteChildAt(int _pos);
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java	Mon Jan 14 03:22:59 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java	Mon Jan 14 04:07:15 2013 +0900
@@ -1,6 +1,7 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
 public interface Traversable<T extends Parent<T>>
 {