changeset 81:715a9fbf02fc

remove <T> many source
author one
date Sun, 31 Aug 2014 07:46:30 +0900
parents a833000f64bf
children a4e2f1d45fdc
files src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.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/core/Parent.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.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/TreeEditor.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/TreeNode.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.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/store/trasnformer/NodeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java src/test/java/DefaultJungleTreeTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java
diffstat 63 files changed, 276 insertions(+), 293 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java	Sun Aug 31 07:46:30 2014 +0900
@@ -11,7 +11,6 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
@@ -20,24 +19,24 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public class DefaultJungle<T extends TreeNode<T>> implements Jungle<T>
+public class DefaultJungle implements Jungle
 {
 	private Journal journal;
-	private ConcurrentHashMap<String,JungleTree<T>> trees;
+	private ConcurrentHashMap<String,JungleTree> trees;
 	private String uuid;
 	private TreeEditor editor;
 	
-	public static <T extends TreeNode<T>>void main(String _args[])
+	public static void main(String _args[])
 	{
-		DefaultJungle<T> j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
-		JungleTree<T> t = j.createNewTree("fuga");
+		DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
+		JungleTree t = j.createNewTree("fuga");
 		
-		JungleTreeEditor<T> e1 = t.getTreeEditor();
-		JungleTreeEditor<T> e2 = t.getTreeEditor();
+		JungleTreeEditor e1 = t.getTreeEditor();
+		//JungleTreeEditor e2 = t.getTreeEditor();
 		
 		DefaultNodePath root = new DefaultNodePath();
 		
-		Either<Error,JungleTreeEditor<T>> either = e1.addNewChildAt(root,0);
+		Either<Error,JungleTreeEditor> either = e1.addNewChildAt(root,0);
 		e1 = either.b();
 		either = e1.addNewChildAt(root.add(0),0);
 		e1 = either.b();
@@ -47,19 +46,19 @@
 	public DefaultJungle(Journal _journal,String _uuid,TreeEditor _editor)
 	{
 		journal = new NullJournal();
-		trees = new ConcurrentHashMap<String,JungleTree<T>>();
+		trees = new ConcurrentHashMap<String,JungleTree>();
 		uuid = _uuid;
 		editor = _editor;
 	}
 
 	@Override
-	public JungleTree<T> getTreeByName(String _name)
+	public JungleTree getTreeByName(String _name)
 	{
 		return trees.get(_name);
 	}
 
 	@Override
-	public JungleTree<T> createNewTree(final String _name)
+	public JungleTree createNewTree(final String _name)
 	{
 		ChangeList list = new ChangeList(){
 			@Override
@@ -78,7 +77,7 @@
 		};
 		
 		DefaultTreeNode root = new DefaultTreeNode();
-		ChangeSet<T> set = new DefaultChangeSet(root,null,list,uuid,_name,0);
+		ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name,0);
 		DefaultTreeContext<DefaultTreeNode> tc = new DefaultTreeContext<DefaultTreeNode>(root,set);
 		JungleTree newTree = new DefaultJungleTree<DefaultTreeNode>(tc,uuid,journal.getWriter(),editor);
 		if(trees.putIfAbsent(_name,newTree) != null){
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java	Sun Aug 31 07:46:30 2014 +0900
@@ -9,7 +9,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
 
-public class DefaultJungleTree<T extends TreeNode<T>> implements JungleTree<T>
+public class DefaultJungleTree<T extends TreeNode> implements JungleTree
 {
 	private final AtomicReservableReference<TreeContext<T>> repository;
 	private final String uuid;
@@ -25,25 +25,25 @@
 	}
 
 	@Override
-	public JungleTreeEditor<T> getTreeEditor()
+	public JungleTreeEditor getTreeEditor()
 	{
 		TreeContext<T> tc = repository.get();
 		DefaultTransactionManager<T> txManager = new DefaultTransactionManager<T>(writer,tc,repository,uuid);
-		T root = tc.getTreeNode();
+		TreeNode root = tc.getTreeNode();
 		return new DefaultJungleTreeEditor<T>(root,txManager,editor);
 	}
 
 	@Override
-	public JungleTreeEditor<T> getLocalTreeEditor()
+	public JungleTreeEditor getLocalTreeEditor()
 	{
 		return getTreeEditor();
 	}
 	
 	@Override
-	public TreeNode<T> getRootNode()
+	public TreeNode getRootNode()
 	{
 		TreeContext<T> tc = repository.get();
-		ChangeSet<T> cs = tc.getChangeSet();
+		ChangeSet cs = tc.getChangeSet();
 		return cs.getRoot();
 	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,9 +1,8 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 
-public interface Jungle<T extends TreeNode<T>>
+public interface Jungle
 {
-	public JungleTree<T> getTreeByName(String _name);
-	public JungleTree<T> createNewTree(String _name);
+	public JungleTree getTreeByName(String _name);
+	public JungleTree createNewTree(String _name);
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,11 +1,11 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 
-public interface JungleTree<T extends TreeNode<T>>
+public interface JungleTree
 {
-	public JungleTreeEditor<T> getTreeEditor();
-	public JungleTreeEditor<T> getLocalTreeEditor();
-	public Node<T> getRootNode();
+	public JungleTreeEditor getTreeEditor();
+	public JungleTreeEditor getLocalTreeEditor();
+	public TreeNode getRootNode();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,24 +2,24 @@
 
 import java.nio.ByteBuffer;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public interface JungleTreeEditor<T extends TreeNode<T>>
+public interface JungleTreeEditor
 {
-	public Node<T> getRoot();
+	public TreeNode getRoot();
 	
-	public Either<Error,JungleTreeEditor<T>> addNewChildAt(NodePath _path,int _pos);
-	public Either<Error,JungleTreeEditor<T>> deleteChildAt(NodePath _path,int _pos);
-	public Either<Error,JungleTreeEditor<T>> putAttribute(NodePath _path,String _key,ByteBuffer _value);
-	public Either<Error,JungleTreeEditor<T>> deleteAttribute(NodePath _path,String _key);
-	public Either<Error,JungleTreeEditor<T>> edit(NodePath _path,NodeEditor _editor);
+	public Either<Error,JungleTreeEditor> addNewChildAt(NodePath _path,int _pos);
+	public Either<Error,JungleTreeEditor> deleteChildAt(NodePath _path,int _pos);
+	public Either<Error,JungleTreeEditor> putAttribute(NodePath _path,String _key,ByteBuffer _value);
+	public Either<Error,JungleTreeEditor> deleteAttribute(NodePath _path,String _key);
+	public Either<Error,JungleTreeEditor> edit(NodePath _path,NodeEditor _editor);
 	
-	public Either<Error,JungleTreeEditor<T>> success();
+	public Either<Error,JungleTreeEditor> success();
 	public String getID();
 	public String getRevision();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.java	Sun Aug 31 07:46:30 2014 +0900
@@ -18,7 +18,7 @@
  */
 public class App 
 {
-    public static <T extends TreeNode<T>>void main( String[] args )
+    public static void main( String[] args )
     {
     	DefaultJungle jungle = new DefaultJungle(null,"sample",new DefaultTreeEditor(new DefaultTraverser()));
     	jungle.createNewTree("hoge");
@@ -34,7 +34,7 @@
     	e.success();
     	
     	
-    	Node<T> root = tree.getRootNode();
+    	TreeNode root = tree.getRootNode();
     	ByteBuffer v = root.getAttributes().get(key);
     	String str = new String(v.array());
     	System.out.println(str);
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,6 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
 
-public interface Node<T> extends AttributesContainer , Parent<T>
+public interface Node extends AttributesContainer
 {
-}
\ No newline at end of file
+}*/
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Parent.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Parent.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,7 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
 public interface Parent<T>
 {
 	public Children<T> getChildren();
 }
+*/
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,8 +2,7 @@
 
 import java.nio.ByteBuffer;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
 
 public class DefaultChangeListWriter implements ChangeListWriter
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,5 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
 
-import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.RandomAccessFile;
@@ -8,7 +7,6 @@
 import java.nio.MappedByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.channels.FileChannel.MapMode;
-import java.nio.channels.WritableByteChannel;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,12 +1,9 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent;
 
-import java.nio.ByteBuffer;
+
 import java.util.Iterator;
 
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+
 
 public class NullJournal implements Journal
 {
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java	Sun Aug 31 07:46:30 2014 +0900
@@ -5,10 +5,10 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
 
-public interface ChangeSet<T extends TreeNode<T>>
+public interface ChangeSet
 {
-	public TreeNode<T> getRoot();
-	public ChangeSet<T> prev();
+	public TreeNode getRoot();
+	public ChangeSet prev();
 	public ChangeList getChangeList();
 	
 	public String uuid();
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java	Sun Aug 31 07:46:30 2014 +0900
@@ -7,5 +7,5 @@
 
 public interface TreeEditor
 {
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _root,NodePath _path,NodeEditor _transformer);
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _root,NodePath _path,NodeEditor _transformer);
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java	Sun Aug 31 07:46:30 2014 +0900
@@ -22,23 +22,23 @@
 	}
 	
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _root,NodePath _path,NodeEditor _editor)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _root,NodePath _path,NodeEditor _editor)
 	{
 		DefaultEvaluator e = new DefaultEvaluator(_path);
 		//TraversableNodeWrapper<T> wrap = new TraversableNodeWrapper<T>(_root);
-		Either<Error, Traversal<T>> either = traverser.traverse(_root,e);
+		Either<Error, Traversal<TreeNode>> either = traverser.traverse(_root,e);
 		
 		if(either.isA()){
 			return DefaultEither.newA(either.a());
 		}
 		
-		Traversal<T> t = either.b();
-		Either<Error,T> ret = clone(t,_editor);
+		Traversal<TreeNode> t = either.b();
+		Either<Error,TreeNode> ret = clone(t,_editor);
 		
 		return ret;
 	}
 	
-	private <T extends TreeNode<T>> Either<Error,T> clone(Traversal<T> _t,NodeEditor _editor)
+	private <T extends TreeNode> Either<Error,TreeNode> clone(Traversal<T> _t,NodeEditor _editor)
 	{
 		// copying nodes from bottom to root
 		
@@ -51,30 +51,30 @@
 		Direction<T> targetDirection = path.head();
 		T target = targetDirection.getTarget();
 		//EditableNodeWrapper<T> wrapper = new EditableNodeWrapper<T>(target);
-		Either<Error,T> either = _editor.edit(target);
+		Either<Error,TreeNode> either = _editor.edit(target);
 		if(either.isA()){
 			return DefaultEither.newA(either.a());
 		}
 		
-		T newNode = either.b();
+		TreeNode newNode = either.b();
 		
 		// top
 		int pos = targetDirection.getPosition();
-		T child = newNode;
+		TreeNode child = newNode;
 		for(Direction<T> parentDirection : path.tail()){
-			TreeNodeChildren<T> chs =  parentDirection.getTarget().getChildren();
+			TreeNodeChildren<TreeNode> chs =  parentDirection.getTarget().getChildren();
 					
-			Either<Error,T> ret = chs.replaceNode(pos,child);
+			Either<Error,TreeNode> ret = chs.replaceNode(pos,child);
 			if(ret.isA()){
 				return DefaultEither.newA(ret.a());
 			}
 			
-			T newParent = ret.b();
+			TreeNode newParent = ret.b();
 			child = newParent;
 			pos = parentDirection.getPosition();
 		}
 		
-		T newRoot = child;
+		TreeNode newRoot = child;
 		return DefaultEither.newB(newRoot);
 	}
 }
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNode.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNode.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,18 +1,15 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainer;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent;
 
-public interface TreeNode<T extends TreeNode<T>> extends Parent<T> , AttributesContainer , Node<T>
+public interface TreeNode extends AttributesContainer
 {
-	@Override
-	public TreeNodeChildren<T> getChildren();
+	public TreeNodeChildren<TreeNode> getChildren();
 	
 	@Override
-	public TreeNodeAttributes<T> getAttributes();
+	public TreeNodeAttributes<TreeNode> getAttributes();
 	
-	public TreeNode<T> createNewNode();
+	public TreeNode createNewNode();
 	//public Node getAsNode();
 	
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java	Sun Aug 31 07:46:30 2014 +0900
@@ -7,9 +7,9 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public interface TreeNodeAttributes<T extends TreeNode<T>> extends Attributes
+public interface TreeNodeAttributes<T extends TreeNode> extends Attributes
 {
-	public Either<Error,T> delete(String _key);
-	public Either<Error,T> put(String _key,ByteBuffer _value);
+	public Either<Error,TreeNode> delete(String _key);
+	public Either<Error,TreeNode> put(String _key,ByteBuffer _value);
 	public TreeMap<String,ByteBuffer> getAttributesAsRawMap();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,16 +2,14 @@
 
 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.Parent;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public interface TreeNodeChildren<T extends TreeNode<T>> extends Children<T>
+public interface TreeNodeChildren<T extends TreeNode> extends Children<T>
 {
-	public Either<Error,T> addNewChildAt(int _pos);
-	public Either<Error,T> deleteChildAt(int _pos);
-	public Either<Error,T> addNewChildAt(int _pos,T _newChild);
-	public Either<Error,T> replaceNode(int _pos,T _replacement);
-	public List<DefaultTreeNode> getChildrenAsRawList();
+	public Either<Error,TreeNode> addNewChildAt(int _pos);
+	public Either<Error,TreeNode> deleteChildAt(int _pos);
+	public Either<Error,TreeNode> addNewChildAt(int _pos,T _newChild);
+	public Either<Error,TreeNode> replaceNode(int _pos,TreeNode _replacement);
+	public List<TreeNode> getChildrenAsRawList();
 }
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java	Sun Aug 31 07:46:30 2014 +0900
@@ -18,15 +18,15 @@
 	}
 
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e)
 	{
 		//LoggingNode<T> loggingNode = new LoggingNode<T>(_e);
-		Either<Error,T> either = editor.edit(_e);
+		Either<Error,TreeNode> either = editor.edit(_e);
 		if(either.isA()){
 			return DefaultEither.newA(either.a());
 		}
 		log = editor.getLog();
-		T newLoggingNode = either.b();
+		TreeNode newLoggingNode = either.b();
 		//T newNode = newLoggingNode.getWrap();
 		//log = newLoggingNode.getOperationLog();
 		
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,10 +3,7 @@
 import java.nio.ByteBuffer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
 
 public final class AppendChildAtOperation implements NodeOperation
 {
@@ -22,12 +19,12 @@
 		return Command.APPEND_CHILD;
 	}
 	
-	@Override
-	public <T extends TreeNode<T>> Either<Error,T> invoke(T _target)
+	/*@Override
+	public <T extends TreeNode> Either<Error,T> invoke(T _target)
 	{
 		AppendChildAt appendChildAt = new AppendChildAt(pos);
 		return appendChildAt.edit(_target);
-	}
+	}*/
 
 	@Override
 	public int getPosition()
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,10 +3,7 @@
 import java.nio.ByteBuffer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
 
 public final class DeleteAttributeOperation implements NodeOperation
 {
@@ -23,12 +20,12 @@
 		return Command.DELETE_ATTRIBUTE;
 	}
 	
-	@Override
-	public <T extends TreeNode<T>> Either<Error,T> invoke(T _target)
+	/*@Override
+	public <T extends TreeNode> Either<Error,T> invoke(T _target)
 	{
 		DeleteAttribute deleteAttribute = new DeleteAttribute(key);
 		return deleteAttribute.edit(_target);
-	}
+	}*/
 
 	@Override
 	public int getPosition()
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,10 +3,7 @@
 import java.nio.ByteBuffer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
 
 public class DeleteChildAtOperation implements NodeOperation
 {
@@ -23,12 +20,12 @@
 		return Command.DELETE_CHILD;
 	}
 	
-	@Override
-	public <T extends TreeNode<T>> Either<Error,T> invoke(T _target)
+	/*@Override
+	public <T extends TreeNode> Either<Error,T> invoke(T _target)
 	{
 		DeleteChildAt deleteChildAt = new DeleteChildAt(pos);
 		return deleteChildAt.edit(_target);
-	}
+	}*/
 
 	@Override
 	public int getPosition()
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,14 +3,11 @@
 import java.nio.ByteBuffer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
 public interface NodeOperation
 {
 	public Command getCommand();
-	public <T extends TreeNode<T>> Either<Error,T> invoke(T _target);
+//	public <T extends TreeNode> Either<Error,T> invoke(T _target);
 	
 	public int getPosition();
 	public String getKey();
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,10 +3,7 @@
 import java.nio.ByteBuffer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
 
 public class PutAttributeOperation implements NodeOperation
 {
@@ -25,12 +22,12 @@
 		return Command.PUT_ATTRIBUTE;
 	}
 	
-	@Override
-	public <T extends TreeNode<T>> Either<Error,T> invoke(T _target)
+	/*@Override
+	public <T extends TreeNode> Either<Error,T> invoke(T _target)
 	{
 		PutAttribute putAttribute = new PutAttribute(key,value);
 		return putAttribute.edit(_target);
-	}
+	}*/
 
 	@Override
 	public int getPosition()
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java	Sun Aug 31 07:46:30 2014 +0900
@@ -19,9 +19,9 @@
 	}
 
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e)
 	{
-		Either<Error,T> either = _e.getChildren().addNewChildAt(pos);
+		Either<Error,TreeNode> either = _e.getChildren().addNewChildAt(pos);
 		if(either.isA()){
 			// error
 			return either;
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java	Sun Aug 31 07:46:30 2014 +0900
@@ -17,7 +17,7 @@
 	}
 
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e)
 	{
 		return _e.getAttributes().delete(key);
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java	Sun Aug 31 07:46:30 2014 +0900
@@ -18,7 +18,7 @@
 	}
 
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e)
 	{
 		return _e.getChildren().deleteChildAt(pos);
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,4 +1,4 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
 
 import java.nio.ByteBuffer;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
@@ -10,3 +10,4 @@
 	public Either<Error,T> delete(String _key);
 	public Either<Error,T> put(String _key,ByteBuffer _value);
 }
+*/
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,4 +1,4 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent;
@@ -13,3 +13,4 @@
 	
 	public final Error OUT_OF_RANGE = new DefaultError();
 }
+*/
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java	Sun Aug 31 07:46:30 2014 +0900
@@ -7,6 +7,6 @@
 
 public interface NodeEditor
 {
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e);
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e);
 	public OperationLog getLog();
 }
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java	Sun Aug 31 07:46:30 2014 +0900
@@ -22,9 +22,9 @@
 	}
 
 	@Override
-	public <T extends TreeNode<T>> Either<Error,T> edit(T _e)
+	public <T extends TreeNode> Either<Error,TreeNode> edit(T _e)
 	{
-		TreeNodeAttributes<T> attrs = _e.getAttributes();
+		TreeNodeAttributes<TreeNode> attrs = _e.getAttributes();
 		return attrs.put(key,value);
 	}
 
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java	Sun Aug 31 07:46:30 2014 +0900
@@ -11,7 +11,7 @@
 		String fuga = "fuga";
 		AtomicReservableReference<String> arr = new AtomicReservableReference<String>(hoge);
 		AtomicReservableReference<String>.Reservation r1 = arr.makeReservation(hoge,fuga);
-		AtomicReservableReference<String>.Reservation r2 = arr.makeReservation(hoge,fuga);
+		//AtomicReservableReference<String>.Reservation r2 = arr.makeReservation(hoge,fuga);
 		
 		System.out.println(arr.get());
 		r1.confirm();
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java	Sun Aug 31 07:46:30 2014 +0900
@@ -5,16 +5,16 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
 
-public class DefaultChangeSet<T extends TreeNode<T>> implements ChangeSet<T>
+public class DefaultChangeSet implements ChangeSet
 {
-	private final TreeNode<T> root;
-	private final ChangeSet<T> previous;
+	private final TreeNode root;
+	private final ChangeSet previous;
 	private final ChangeList changeList;
 	private final String uuid;
 	private final String treeName;
 	private final long revision;
 	
-	public DefaultChangeSet(TreeNode<T> _node,ChangeSet<T> _prev,ChangeList _log,String _uuid, String _treeName, long _revision)
+	public DefaultChangeSet(TreeNode _node,ChangeSet _prev,ChangeList _log,String _uuid, String _treeName, long _revision)
 	{
 		root = _node;
 		previous = _prev;
@@ -25,13 +25,13 @@
 	}
 
 	@Override
-	public TreeNode<T> getRoot()
+	public TreeNode getRoot()
 	{
 		return root;
 	}
 
 	@Override
-	public ChangeSet<T> prev()
+	public ChangeSet prev()
 	{
 		return previous;
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java	Sun Aug 31 07:46:30 2014 +0900
@@ -10,7 +10,6 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNodeHook;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.AppendChildAtOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
@@ -24,21 +23,21 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
 
-public class DefaultJungleTreeEditor<T extends TreeNode<T>> implements JungleTreeEditor
+public class DefaultJungleTreeEditor<T extends TreeNode> implements JungleTreeEditor
 {
 	private final TransactionManager<T> txManager;
-	private final T root;
+	private final TreeNode root;
 	private final TreeEditor editor;
 	private final TreeOperationLog log;
 
-	public DefaultJungleTreeEditor(T _root,TransactionManager<T> _txManager,TreeEditor _editor)
+	public DefaultJungleTreeEditor(TreeNode _root,TransactionManager<T> _txManager,TreeEditor _editor)
 	{
 		this(_root,_txManager,_editor,new DefaultTreeOperationLog());
 	}
 	
-	public DefaultJungleTreeEditor(T _root,TransactionManager<T> _txManager,TreeEditor _editor,TreeOperationLog _log)
+	public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager<T> _txManager,TreeEditor _editor,TreeOperationLog _log)
 	{
-		root = _root;
+		root = newNode;
 		txManager = _txManager;
 		editor = _editor;
 		log = _log;
@@ -47,12 +46,12 @@
 	private Either<Error,JungleTreeEditor> _edit(final NodePath _path,NodeEditor _e)
 	{
 		LoggingNodeHook hook = new LoggingNodeHook(_e);
-		Either<Error,T> either = editor.edit(root,_path,hook);
+		Either<Error,TreeNode> either = editor.edit(root,_path,hook);
 		if(either.isA()){
 			return DefaultEither.newA(either.a());
 		}
 		
-		T newNode = either.b();
+		TreeNode newNode = either.b();
 		OperationLog newLog = hook.getLog();
 		
 		IterableConverter.Converter<TreeOperation,NodeOperation> converter = new IterableConverter.Converter<TreeOperation,NodeOperation>(){
@@ -66,7 +65,7 @@
 		DefaultTreeOperationLog treeOperationLog = new DefaultTreeOperationLog(iterable,newLog.length());
 		TreeOperationLog newTreeOpLog = log.append(treeOperationLog);
 		
-		JungleTreeEditor newEditor = new DefaultJungleTreeEditor<T>(newNode,txManager,editor,new DefaultTreeOperationLog());
+		JungleTreeEditor newEditor = new DefaultJungleTreeEditor<T>(newNode,txManager,editor,newTreeOpLog);
 		return DefaultEither.newB(newEditor);
 	}
 	
@@ -131,7 +130,7 @@
 	}
 
 	@Override
-	public TreeNode<T> getRoot()
+	public TreeNode getRoot()
 	{
 		return null;
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,7 +1,6 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction;
 
 import java.util.Iterator;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
@@ -15,7 +14,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public class DefaultTransactionManager<T extends TreeNode<T>> implements TransactionManager<T>
+public class DefaultTransactionManager<T extends TreeNode> implements TransactionManager<T>
 {
 	private final AtomicReservableReference<TreeContext<T>> repository;
 	private final TreeContext<T> tip;
@@ -32,9 +31,9 @@
 	}
 	
 	@Override
-	public Either<Error,TransactionManager<T>> commit(T _newRoot,final TreeOperationLog _log)
+	public Either<Error,TransactionManager<T>> commit(TreeNode _newRoot,final TreeOperationLog _log)
 	{
-		ChangeSet<T> cs = tip.getChangeSet();
+		ChangeSet cs = tip.getChangeSet();
 		long currentRevision = cs.revision();
 		long nextRevision = currentRevision + 1;
 		
@@ -54,7 +53,7 @@
 			}
 		};
 		
-		DefaultChangeSet<T> newCs = new DefaultChangeSet(_newRoot,cs,list,uuid, _treeName, nextRevision);
+		DefaultChangeSet newCs = new DefaultChangeSet(_newRoot,cs,list,uuid, _treeName, nextRevision);
 		DefaultTreeContext<T> newContext = new DefaultTreeContext<T>(_newRoot,newCs);
 		
 		@SuppressWarnings("rawtypes")
@@ -80,7 +79,7 @@
 	@Override
 	public long getRevision()
 	{
-		ChangeSet<T> cs = tip.getChangeSet();
+		ChangeSet cs = tip.getChangeSet();
 		return cs.revision();
 	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,12 +3,12 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 
-public class DefaultTreeContext<T extends TreeNode<T>> implements TreeContext<T>
+public class DefaultTreeContext<T extends TreeNode> implements TreeContext<T>
 {
-	private final T root;
+	private final TreeNode root;
 	private final ChangeSet cs;
 	
-	public DefaultTreeContext(T _newRoot,ChangeSet _cs)
+	public DefaultTreeContext(TreeNode _newRoot,ChangeSet _cs)
 	{
 		root = _newRoot;
 		cs = _cs;
@@ -21,7 +21,7 @@
 	}
 
 	@Override
-	public T getTreeNode()
+	public TreeNode getTreeNode()
 	{
 		return root;
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java	Sun Aug 31 07:46:30 2014 +0900
@@ -5,16 +5,15 @@
 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.impl.TreeNode;
 
-public class DefaultTreeNode implements TreeNode<DefaultTreeNode>
+public class DefaultTreeNode implements TreeNode
 {
 	//private final DefaultNode wrap;
-	public List<DefaultTreeNode> children;
+	public List<TreeNode> children;
 	public TreeMap<String,ByteBuffer> attrs;
 	
-	private static final List<DefaultTreeNode> NIL_LIST = List.nil();
+	private static final List<TreeNode> NIL_LIST = List.nil();
 	private static final TreeMap<String,ByteBuffer> NIL_MAP = TreeMap.empty(Ord.stringOrd);
 	
 	public DefaultTreeNode()
@@ -22,7 +21,7 @@
 		this(NIL_LIST,NIL_MAP);
 	}
 	
-	public DefaultTreeNode(List<DefaultTreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
+	public DefaultTreeNode(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
 	{
 		attrs = _attrs;
 		children = _children;
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java	Sun Aug 31 07:46:30 2014 +0900
@@ -5,19 +5,19 @@
 import fj.data.List;
 import fj.data.Option;
 import fj.data.TreeMap;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultAttributes;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditorError;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public class DefaultTreeNodeAttribute implements TreeNodeAttributes<DefaultTreeNode>
+public class DefaultTreeNodeAttribute implements TreeNodeAttributes<TreeNode>
 {
-	public List<DefaultTreeNode> children;
+	public List<TreeNode> children;
 	public TreeMap<String,ByteBuffer> attrs;
 	
-	public DefaultTreeNodeAttribute(List<DefaultTreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
+	public DefaultTreeNodeAttribute(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
 	{
 		children = _children;
 		attrs = _attrs;
@@ -29,7 +29,7 @@
 	}
 	
 	@Override
-	public Either<Error,DefaultTreeNode> delete(String _key)
+	public Either<Error,TreeNode> delete(String _key)
 	{
 		if(_key == null){
 			return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED);
@@ -41,13 +41,13 @@
 		
 		TreeMap<String,ByteBuffer> newMap = attrs.delete(_key);
 		
-		DefaultTreeNode newNode = new DefaultTreeNode(children,newMap);
+		TreeNode newNode = new DefaultTreeNode(children,newMap);
 		
 		return DefaultEither.newB(newNode);
 	}
 
 	@Override
-	public Either<Error,DefaultTreeNode> put(String _key, ByteBuffer _value)
+	public Either<Error,TreeNode> put(String _key, ByteBuffer _value)
 	{
 		if(_key == null || _value == null){
 			return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED);
@@ -59,7 +59,7 @@
 		//TreeMap<String,ByteBuffer> raw = attrs.getAttributesAsRawMap();
 		TreeMap<String,ByteBuffer> newMap = attrs.set(_key,_value);
 		
-		DefaultTreeNode newNode = new DefaultTreeNode(children,newMap);
+		TreeNode newNode = new DefaultTreeNode(children,newMap);
 		
 		return DefaultEither.newB(newNode);
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java	Sun Aug 31 07:46:30 2014 +0900
@@ -6,15 +6,14 @@
 import fj.P2;
 import fj.data.List;
 import fj.data.TreeMap;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultAttributes;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeChildren;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditorError;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
 
-public class DefaultTreeNodeChildren implements TreeNodeChildren<DefaultTreeNode>
+public class DefaultTreeNodeChildren implements TreeNodeChildren<TreeNode>
 {
 	public static void main(String _args[])
 	{
@@ -25,10 +24,10 @@
 		
 	}
 	
-	public List<DefaultTreeNode> children;
+	public List<TreeNode> children;
 	public TreeMap<String,ByteBuffer> attrs;
 	
-	public DefaultTreeNodeChildren(List<DefaultTreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
+	public DefaultTreeNodeChildren(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
 	{
 		children = _children;
 		attrs = _attrs;
@@ -45,11 +44,11 @@
 	}
 
 	@Override
-	public List<DefaultTreeNode> getChildrenAsRawList(){
+	public List<TreeNode> getChildrenAsRawList(){
 		return children;
 	}
 	@Override
-	public Either<Error,DefaultTreeNode> addNewChildAt(int _pos)
+	public Either<Error,TreeNode> addNewChildAt(int _pos)
 	{
 		if(!boundaryCheck(_pos) || _pos < 0){
 			return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
@@ -57,25 +56,25 @@
 		
 		
 		
-		P2<List<DefaultTreeNode>,List<DefaultTreeNode>> split = children.splitAt(_pos);
-		List<DefaultTreeNode> newChildren = split._1().snoc(new DefaultTreeNode()).append(split._2());
-		DefaultTreeNode newNode = new DefaultTreeNode(newChildren,attrs);
+		P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos);
+		List<TreeNode> newChildren = split._1().snoc(new DefaultTreeNode()).append(split._2());
+		TreeNode newNode = new DefaultTreeNode(newChildren,attrs);
 		
 		return DefaultEither.newB(newNode);
 	}
 
 	@Override
-	public Either<Error,DefaultTreeNode> deleteChildAt(int _pos)
+	public Either<Error,TreeNode> deleteChildAt(int _pos)
 	{
 		if(!boundaryCheck(_pos) || _pos < 0 || size() == 0){
 			return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
 		}
 				
-		P2<List<DefaultTreeNode>,List<DefaultTreeNode>> split = children.splitAt(_pos);
-		List<DefaultTreeNode> newChildren = split._1().append(split._2().tail());
+		P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos);
+		List<TreeNode> newChildren = split._1().append(split._2().tail());
 		
 		
-		DefaultTreeNode newNode = new DefaultTreeNode(newChildren,attrs);
+		TreeNode newNode = new DefaultTreeNode(newChildren,attrs);
 		
 		return DefaultEither.newB(newNode);
 	}
@@ -87,32 +86,32 @@
 	}
 
 	@Override
-	public Iterator<DefaultTreeNode> iterator()
+	public Iterator<TreeNode> iterator()
 	{
 		return children.iterator();
 	}
 
 	@Override
-	public Either<Error,DefaultTreeNode> replaceNode(int _pos,DefaultTreeNode _replacement)
+	public Either<Error,TreeNode> replaceNode(int _pos,TreeNode _replacement)
 	{
 		int size = children.length();
 		if(!(0 <= _pos && _pos < size)){
 			return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
 		}
-		DefaultTreeNode replacement = _replacement;
+		TreeNode replacement = _replacement;
 		
-		P2<List<DefaultTreeNode>,List<DefaultTreeNode>> split = children.splitAt(_pos + 1);
-		List<DefaultTreeNode> init = split._1().reverse().tail().reverse();
-		List<DefaultTreeNode> newInit = init.snoc(replacement);
-		List<DefaultTreeNode> newList = newInit.append(split._2());
-		
-		return DefaultEither.newB(new DefaultTreeNode(newList,attrs));
+		P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos + 1);
+		List<TreeNode> init = split._1().reverse().tail().reverse();
+		List<TreeNode> newInit = init.snoc(replacement);
+		List<TreeNode> newList = newInit.append(split._2());
+		TreeNode node = new DefaultTreeNode(newList,attrs);
+		return DefaultEither.newB(node);
 	}
 
 	@Override
-	public Either<Error,DefaultTreeNode> at(int _pos)
+	public Either<Error,TreeNode> at(int _pos)
 	{
-		DefaultTreeNode Node = children.index(_pos);
+		TreeNode Node = children.index(_pos);
 		if(Node == null){
 			return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
 		}
@@ -121,16 +120,16 @@
 	}
 
 	@Override
-	public Either<Error,DefaultTreeNode> addNewChildAt(int _pos,DefaultTreeNode _newChild)
+	public Either<Error,TreeNode> addNewChildAt(int _pos,TreeNode _newChild)
 	{
 		if(!boundaryCheck(_pos) || _pos < 0){
 			return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
 		}
 		
 		
-		P2<List<DefaultTreeNode>,List<DefaultTreeNode>> split = children.splitAt(_pos);
-		List<DefaultTreeNode> newChildren = split._1().snoc(_newChild).append(split._2());
-		DefaultTreeNode newNode = new DefaultTreeNode(newChildren,attrs);
+		P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos);
+		List<TreeNode> newChildren = split._1().snoc(_newChild).append(split._2());
+		TreeNode newNode = new DefaultTreeNode(newChildren,attrs);
 		
 		return DefaultEither.newB(newNode);
 	}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java	Sun Aug 31 07:46:30 2014 +0900
@@ -5,9 +5,9 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
-public interface TransactionManager<T extends TreeNode<T>>
+public interface TransactionManager<T extends TreeNode>
 {
-	public Either<Error,TransactionManager<T>> commit(T _newRoot,TreeOperationLog _log);
+	public Either<Error,TransactionManager<T>> commit(TreeNode _newRoot,TreeOperationLog _log);
 	public String getUUID();
 	public long getRevision();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java	Sun Aug 31 07:46:30 2014 +0900
@@ -3,8 +3,8 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 
-public interface TreeContext<T extends TreeNode<T>>
+public interface TreeContext<T extends TreeNode>
 {
-	public ChangeSet<T> getChangeSet();
-	public T getTreeNode();
+	public ChangeSet getChangeSet();
+	public TreeNode getTreeNode();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java	Sun Aug 31 07:46:30 2014 +0900
@@ -14,7 +14,7 @@
 	}
 	
 	@Override
-	public <T extends TreeNode<T>> Evaluation evaluate(T _current,int _pos)
+	public <T extends TreeNode> Evaluation evaluate(T _current,int _pos)
 	{
 		Pair<Integer,NodePath> pop = path.pop();
 		int head = pop.left();
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java	Sun Aug 31 07:46:30 2014 +0900
@@ -13,7 +13,7 @@
 public class DefaultTraverser implements Traverser
 {
 	@Override
-	public <T extends TreeNode<T>> Either<Error,Traversal<T>> traverse(final T _root,Evaluator _evaluator)
+	public <T extends TreeNode> Either<Error,Traversal<TreeNode>> traverse(final T _root,Evaluator _evaluator)
 	{
 		Children<T> wrapper = new Children<T>(){
 			@Override
@@ -37,24 +37,24 @@
 		//Children<T> chs = _root.getChildren();
 		Children<T> chs = wrapper;
 		
-		Either<Error,List<Direction<T>>> ret = _traverse(chs,_evaluator,-1);
+		Either<Error,List<Direction<TreeNode>>> ret = _traverse(chs,_evaluator,-1);
 		if(ret.isA()){
 			return DefaultEither.newA(ret.a());
 		}
 		
-		List<Direction<T>> list = ret.b();
+		List<Direction<TreeNode>> list = ret.b();
 		
-		final Iterable<Direction<T>> iterable = list;
-		final T destination = ret.b().last().getTarget();
+		final Iterable<Direction<TreeNode>> iterable = list;
+		final TreeNode destination = ret.b().last().getTarget();
 		
-		Traversal<T> traversal = new Traversal<T>(){
+		Traversal<TreeNode> traversal = new Traversal<TreeNode>(){
 			@Override
-			public Iterator<Direction<T>> iterator(){
+			public Iterator<Direction<TreeNode>> iterator(){
 				return iterable.iterator();
 			}
 
 			@Override
-			public T destination(){
+			public TreeNode destination(){
 				return destination;
 			}
 		};
@@ -62,10 +62,10 @@
 		return DefaultEither.newB(traversal);
 	}
 	
-	private <T extends TreeNode<T>> Either<Error,List<Direction<T>>> _traverse(Children<T> _chs,Evaluator _evaluator,int _pos)
+	private <T extends TreeNode> Either<Error,List<Direction<TreeNode>>> _traverse(Children<T> _chs,Evaluator _evaluator,int _pos)
 	{
 		int pos = _pos;
-		for(T ch : _chs){
+		for(TreeNode ch : _chs){
 			Evaluation e = _evaluator.evaluate(ch,pos);
 			Result r = e.result();
 			if(r == Result.ACCEPT){
@@ -91,7 +91,7 @@
 		return DefaultEither.newA(TraverserError.PATH_NOT_FOUND);
 	}
 	
-	private <T extends TreeNode<T>> List<Direction<T>> _goal(final T _current,final int _pos)
+	private <T extends TreeNode> List<Direction<T>> _goal(final T _current,final int _pos)
 	{
 		Direction<T> d = new Direction<T>(){
 			@Override
@@ -112,16 +112,16 @@
 		return newList;
 	}
 	
-	private <T extends TreeNode<T>> Either<Error,List<Direction<T>>> _accept(final T _current,final int _pos,Evaluator _evaluator)
+	private <T extends TreeNode> Either<Error,List<Direction<TreeNode>>> _accept(final T _current,final int _pos,Evaluator _evaluator)
 	{
-		Children<T> chs = _current.getChildren();
-		Either<Error,List<Direction<T>>> either = _traverse(chs,_evaluator,0);
+		Children<TreeNode> chs = _current.getChildren();
+		Either<Error,List<Direction<TreeNode>>> either = _traverse(chs,_evaluator,0);
 		if(either.isA()){
 			return either;
 		}
 		
-		List<Direction<T>> list = either.b();
-		Direction<T> d = new Direction<T>(){
+		List<Direction<TreeNode>> list = either.b();
+		Direction<TreeNode> d = new Direction<TreeNode>(){
 			@Override
 			public int getPosition()
 			{
@@ -134,7 +134,7 @@
 			}
 		};
 		
-		List<Direction<T>> newList = list.cons(d);
+		List<Direction<TreeNode>> newList = list.cons(d);
 		return DefaultEither.newB(newList);
 	}
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java	Sun Aug 31 07:46:30 2014 +0900
@@ -4,5 +4,5 @@
 
 public interface Evaluator
 {
-	public <T extends TreeNode<T>> Evaluation evaluate(T _current,int _pos);
+	public <T extends TreeNode> Evaluation evaluate(T _current,int _pos);
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,7 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser;
 
 public interface TraversableChildren<T> extends Iterable<T>
 {
 	public int size();
 }
+*/
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,7 +2,7 @@
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 
-public interface Traversal<T extends TreeNode<T>> extends Iterable<Direction<T>>
+public interface Traversal<T extends TreeNode> extends Iterable<Direction<T>>
 {
 	public T destination();
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java	Sun Aug 31 07:46:30 2014 +0900
@@ -6,7 +6,7 @@
 
 public interface Traverser
 {
-	public <T extends TreeNode<T>> Either<Error,Traversal<T>> traverse(final T _root,Evaluator _evaluator);
+	public <T extends TreeNode> Either<Error,Traversal<TreeNode>> traverse(final T _root,Evaluator _evaluator);
 
 	
 }
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,4 +1,4 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util;
 
 import java.util.Iterator;
 
@@ -45,3 +45,4 @@
 		}
 	}
 }
+*/
\ No newline at end of file
--- a/src/test/java/DefaultJungleTreeTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/DefaultJungleTreeTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -4,7 +4,6 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
@@ -27,7 +26,7 @@
 	public static final String key = "KEY";
 	public static final ByteBuffer value = ByteBuffer.wrap(key.getBytes());
 	
-	public <T extends TreeNode<T>>void testSampleTest()
+	public <T extends TreeNode>void testSampleTest()
 	{
 		Jungle j = instance();
 		j.createNewTree("tree");
@@ -46,7 +45,7 @@
 		editor1.success();
 		
 		// check the value ;
-		Node<T> node = tree.getRootNode();
+		TreeNode node = tree.getRootNode();
 		ByteBuffer v = node.getAttributes().get(key);
 		Assert.assertEquals(0,v.compareTo(value));
 		
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,5 +1,6 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNodeChildren;
 import junit.framework.Assert;
@@ -13,7 +14,7 @@
 	public void testSize()
 	{
 		int expect = expectSize();
-		Children<DefaultTreeNode> children = instance();
+		Children<TreeNode> children = instance();
 		
 		Assert.assertEquals(expect,children.size());
 	}
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,4 +1,4 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
 
 import org.junit.Ignore;
 import org.junit.Test;
@@ -19,3 +19,4 @@
 		Assert.assertNotNull(children);
 	}
 }
+*/
\ No newline at end of file
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,8 +1,10 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.impl.treeeditor;
 
 import java.nio.ByteBuffer;
+
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.tests.util.TestUtil;
@@ -25,36 +27,36 @@
 	
 	public void testEdittingDoesNotEffectToOtherTree()
 	{
-		DefaultTreeNode root = TestUtil.createMockTree(3);
+		TreeNode root = TestUtil.createMockTree(3);
 		DefaultTreeEditor editor = new DefaultTreeEditor(new DefaultTraverser());
 		DefaultNodePath path = new DefaultNodePath().add(0).add(2);
 		
-		DefaultTreeNode oldRoot = root;
+		TreeNode oldRoot = root;
 		
 		DefaultTreeEditor currentEditor = editor;
 		String key = "path";
 		
 		
-		DefaultTreeNode currentRoot = root;
+		TreeNode currentRoot = root;
 		for(DefaultNodePath part : path.inits()){
 			ByteBuffer value = ByteBuffer.wrap(part.toString().getBytes());
 			PutAttribute putAttribute = new PutAttribute(key,value);
-			Either<Error,DefaultTreeNode> either = currentEditor.edit(currentRoot,part,putAttribute);
+			Either<Error,TreeNode> either = currentEditor.edit(currentRoot,part,putAttribute);
 			if(either.isA()){
 				Assert.fail();
 			}
 			currentRoot = either.b();
 		}
 		
-		DefaultTreeNode newRoot = currentRoot;
+		TreeNode newRoot = currentRoot;
 		DefaultTraverser traverser = new DefaultTraverser();
 		
 		for(DefaultNodePath part : path.inits()){
-			Either<Error,Traversal<DefaultTreeNode>> either = traverser.traverse(newRoot,new DefaultEvaluator(part));
+			Either<Error,Traversal<TreeNode>> either = traverser.traverse(newRoot,new DefaultEvaluator(part));
 			if(either.isA()){
 				Assert.fail();
 			}
-			DefaultTreeNode target = either.b().destination();
+			TreeNode target = either.b().destination();
 			String expected = part.toString();
 			String actual = new String(target.getAttributes().get(key).array());
 			
@@ -62,11 +64,11 @@
 		}
 		
 		for(DefaultNodePath part : path.inits()){
-			Either<Error,Traversal<DefaultTreeNode>> either = traverser.traverse(oldRoot,new DefaultEvaluator(part));
+			Either<Error,Traversal<TreeNode>> either = traverser.traverse(oldRoot,new DefaultEvaluator(part));
 			if(either.isA()){
 				Assert.fail();
 			}
-			DefaultTreeNode target = either.b().destination();
+			TreeNode target = either.b().destination();
 			ByteBuffer actual = target.getAttributes().get(key);
 			
 			Assert.assertNull(actual);
@@ -80,11 +82,11 @@
 		DefaultTreeNode node = new DefaultTreeNode();
 		DefaultNodePath path = new DefaultNodePath();
 		
-		Either<Error,DefaultTreeNode> either = instance.edit(node,path,new AppendChildAt(0));
+		Either<Error,TreeNode> either = instance.edit(node,path,new AppendChildAt(0));
 		if(either.isA()){
 			Assert.fail();
 		}
-		DefaultTreeNode newRoot = either.b();
+		TreeNode newRoot = either.b();
 		Assert.assertEquals(1,newRoot.getChildren().size());
 	}
 }
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,7 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;
 
 
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
@@ -12,14 +13,14 @@
 {
 	public void testEdit()
 	{
-		DefaultTreeNode node = new DefaultTreeNode();
+		TreeNode node = new DefaultTreeNode();
 		AppendChildAt op = new AppendChildAt(0);
-		Either<Error, DefaultTreeNode> either = op.edit(node);
+		Either<Error, TreeNode> either = op.edit(node);
 		if(either.isA()){
 			Assert.fail();
 		}
 		
-		DefaultTreeNode newNode = either.b();
+		TreeNode newNode = either.b();
 		Assert.assertEquals(1,newNode.getChildren().size());
 	}
 }
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,6 +1,8 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;
 
 import java.nio.ByteBuffer;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
@@ -15,19 +17,19 @@
 		String key = "KEY";
 		ByteBuffer value = ByteBuffer.wrap(key.getBytes());
 		
-		DefaultTreeNode node = new DefaultTreeNode();
-		Either<Error,DefaultTreeNode> either = node.getAttributes().put(key, value);
+		TreeNode node = new DefaultTreeNode();
+		Either<Error,TreeNode> either = node.getAttributes().put(key, value);
 		if(either.isA()){
 			Assert.fail();
 		}
 		node = either.b();
 		
 		DeleteAttribute op = new DeleteAttribute(key);
-		Either<Error,DefaultTreeNode> either2 = op.edit(node);
+		Either<Error,TreeNode> either2 = op.edit(node);
 		if(either2.isA()){
 			Assert.fail();
 		}
-		DefaultTreeNode newNode = either2.b();
+		TreeNode newNode = either2.b();
 		ByteBuffer ret = newNode.getAttributes().get(key);
 		Assert.assertNull(ret);
 	}
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,5 +1,6 @@
 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;
 
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
@@ -11,8 +12,8 @@
 {
 	public void testEdit()
 	{
-		DefaultTreeNode node = new DefaultTreeNode();
-		Either<Error,DefaultTreeNode> either = node.getChildren().addNewChildAt(0);
+		TreeNode node = new DefaultTreeNode();
+		Either<Error,TreeNode> either = node.getChildren().addNewChildAt(0);
 		if(either.isA()){
 			Assert.fail();
 		}
@@ -20,7 +21,7 @@
 		Assert.assertEquals(1,node.getChildren().size());
 		
 		DeleteChildAt op = new DeleteChildAt(0);
-		Either<Error,DefaultTreeNode> either2 = op.edit(node);
+		Either<Error,TreeNode> either2 = op.edit(node);
 		if(either2.isA()){
 			Assert.fail();
 		}
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -1,4 +1,4 @@
-package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;
+/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor;
 
 import java.nio.ByteBuffer;
 
@@ -96,3 +96,4 @@
 		}
 	}
 }
+*/
\ No newline at end of file
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -4,6 +4,7 @@
 
 import org.junit.Assert;
 
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
@@ -16,15 +17,15 @@
 	{
 		String key = "KEY";
 		ByteBuffer value = ByteBuffer.wrap(key.getBytes());
-		DefaultTreeNode node = new DefaultTreeNode();
+		TreeNode node = new DefaultTreeNode();
 		PutAttribute op = new PutAttribute(key,value);
 		//EditableNodeWrapper<DefaultTreeNode> wrapper = new EditableNodeWrapper<DefaultTreeNode>(node);
-		Either<Error, DefaultTreeNode> either = op.edit(node);
+		Either<Error, TreeNode> either = op.edit(node);
 		if(either.isA()){
 			Assert.fail();
 		}
 		
-		DefaultTreeNode newNode = either.b();
+		TreeNode newNode = either.b();
 		ByteBuffer ret = newNode.getAttributes().get(key);
 		Assert.assertEquals(0,ret.compareTo(value));
 	}
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -8,7 +8,7 @@
 import fj.data.TreeMap;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesTest;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor.EditableAttributesTest;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNodeAttribute;
 import junit.framework.TestCase;
@@ -20,13 +20,13 @@
 	{
 		TestSuite suite = new TestSuite();
 		suite.addTestSuite(AttributeTestImpl.class);
-		suite.addTestSuite(EditableAttributesTestImpl.class);
+		//suite.addTestSuite(EditableAttributesTestImpl.class);
 		return suite;
 	}
 	
 	public static DefaultTreeNode instance()
 	{
-		List<DefaultTreeNode> rawList = List.nil();
+		List<TreeNode> rawList = List.nil();
 		TreeMap<String,ByteBuffer> rawMap = TreeMap.empty(Ord.stringOrd);
 		
 		for(P2<String,ByteBuffer> entry : AttributesTest.ENTRIES){
@@ -47,7 +47,7 @@
 		
 	}
 	
-	public static class EditableAttributesTestImpl extends EditableAttributesTest<DefaultTreeNode>
+	/*public static class EditableAttributesTestImpl extends EditableAttributesTest<DefaultTreeNode>
 	{
 
 		@Override
@@ -57,5 +57,5 @@
 			return instance.getAttributes();
 		}
 		
-	}
+	}*/
 }
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,7 +2,6 @@
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainer;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainerTest;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.ParentTest;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import junit.framework.Assert;
 import junit.framework.TestCase;
@@ -14,7 +13,7 @@
 	{
 		TestSuite suite = new TestSuite();
 		suite.addTestSuite(AttributesContaierTestImpl.class);
-		suite.addTestSuite(ParentTestImpl.class);
+		//suite.addTestSuite(ParentTestImpl.class);
 		return suite;
 	}
 	
@@ -46,7 +45,7 @@
 		}
 	}
 	
-	public static class ParentTestImpl extends ParentTest<DefaultTreeNode>
+	/*public static class ParentTestImpl extends ParentTest<DefaultTreeNode>
 	{
 
 		@Override
@@ -54,5 +53,5 @@
 		{
 			return DefaultTreeNodeTest.instance();
 		}
-	}
+	}*/
 }
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -11,14 +11,16 @@
 import fj.data.TreeMap;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesTest;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultAttributes;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNodeAttribute;
 
 public class DefaultAttributesTest extends AttributesTest
 {
-	public DefaultTreeNodeAttribute instance()
+	public TreeNodeAttributes<TreeNode> instance()
 	{
-		List<DefaultTreeNode> rawList = List.nil();
+		List<TreeNode> rawList = List.nil();
 		TreeMap<String,ByteBuffer> rawMap = TreeMap.empty(Ord.stringOrd);
 		
 		// add attributes
@@ -27,13 +29,13 @@
 			rawMap = rawMap.set(entry._1(),entry._2());
 		}
 		
-		DefaultTreeNode node = new DefaultTreeNode(rawList,rawMap);
+		TreeNode node = new DefaultTreeNode(rawList,rawMap);
 		return node.getAttributes();
 	}
 	
 	public void testGetAttributesAsRawMap()
 	{
-		DefaultTreeNodeAttribute attrs = instance();
+		TreeNodeAttributes<TreeNode> attrs = instance();
 		TreeMap<String,ByteBuffer> rawMap = attrs.getAttributesAsRawMap();
 		
 		// testing rawmap is not null.
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -8,17 +8,17 @@
 import fj.data.List;
 import fj.data.TreeMap;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.ChildrenTest;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNodeChildren;
 
-public class DefaultChildrenTest extends ChildrenTest<Node>
+public class DefaultChildrenTest extends ChildrenTest<TreeNode>
 {
 	
 	@Override
 	public DefaultTreeNodeChildren instance()
 	{
-		List<DefaultTreeNode> rawList = List.nil();
+		List<TreeNode> rawList = List.nil();
 		for(int i = 0;i < expectSize();i ++){
 			rawList = rawList.cons(new DefaultTreeNode());
 		}
@@ -37,7 +37,7 @@
 	public void testGetChildrenAsRawList()
 	{
 		DefaultTreeNodeChildren instance = instance();
-		List<DefaultTreeNode> rawList = instance.getChildrenAsRawList();
+		List<TreeNode> rawList = instance.getChildrenAsRawList();
 		
 		Assert.assertNotNull(rawList);
 		Assert.assertEquals(expectSize(),rawList.length());
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -7,7 +7,7 @@
 import fj.data.TreeMap;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainer;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.AttributesContainerTest;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.ParentTest;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
@@ -23,13 +23,13 @@
 	{
 		TestSuite suite = new TestSuite();
 		suite.addTestSuite(DefaultNodeTest.AttributesContaierTestImpl.class);
-		suite.addTestSuite(DefaultNodeTest.ParentTestImpl.class);
+		//suite.addTestSuite(DefaultNodeTest.ParentTestImpl.class);
 		return suite;
 	}
 	
 	public static DefaultTreeNode instance()
 	{
-		List<DefaultTreeNode> rawList = List.nil();
+		List<TreeNode> rawList = List.nil();
 		TreeMap<String,ByteBuffer> rawMap = TreeMap.empty(Ord.stringOrd);
 		DefaultTreeNode node = new DefaultTreeNode(rawList,rawMap);
 		
@@ -45,7 +45,7 @@
 		}
 	}
 	
-	public static class ParentTestImpl extends ParentTest<DefaultTreeNode>
+	/*public static class ParentTestImpl extends ParentTest<DefaultTreeNode>
 	{
 
 		@Override
@@ -53,5 +53,5 @@
 		{
 			return DefaultNodeTest.instance();
 		}
-	}
+	}*/
 }
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java	Sun Aug 31 07:46:30 2014 +0900
@@ -2,11 +2,11 @@
 
 import java.nio.ByteBuffer;
 
-
 import org.junit.Ignore;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
@@ -14,15 +14,15 @@
 @Ignore
 public class TestUtil
 {
-	public static DefaultTreeNode createMockTree(int _maxDepth)
+	public static TreeNode createMockTree(int _maxDepth)
 	{
 		return _createMockTree(1,_maxDepth,new DefaultNodePath());
 	}
 	
-	public static DefaultTreeNode _createMockTree(int _currentDepth,int _maxDepth,NodePath _path)
+	public static TreeNode _createMockTree(int _currentDepth,int _maxDepth,NodePath _path)
 	{
-		DefaultTreeNode parent = new DefaultTreeNode();
-		Either<Error, DefaultTreeNode> either = parent.getAttributes().put("KEY",ByteBuffer.wrap(_path.toString().getBytes()));
+		TreeNode parent = new DefaultTreeNode();
+		Either<Error, TreeNode> either = parent.getAttributes().put("KEY",ByteBuffer.wrap(_path.toString().getBytes()));
 		if(either.isA()){
 			return null;
 		}
@@ -30,7 +30,7 @@
 		
 		if(_currentDepth != _maxDepth){
 			for(int i = 0;i <= _currentDepth;i ++){
-				DefaultTreeNode ch = _createMockTree(_currentDepth + 1,_maxDepth,_path.add(i));
+				TreeNode ch = _createMockTree(_currentDepth + 1,_maxDepth,_path.add(i));
 				either = parent.getChildren().addNewChildAt(i,ch);
 				if(either.isA()){
 					return null;
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java	Sun Aug 31 03:30:03 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java	Sun Aug 31 07:46:30 2014 +0900
@@ -24,7 +24,7 @@
 	public void testTraverse()
 	{
 		int maxHeight = 3;
-		DefaultTreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
+		TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
 		
 		//TraversableNodeWrapper<DefaultTreeNode> traversable = new TraversableNodeWrapper<DefaultTreeNode>(root);
 		Traverser traverser = instance();
@@ -35,12 +35,12 @@
 		
 		for(DefaultNodePath path : paths){
 			DefaultEvaluator evaluator = new DefaultEvaluator(path);
-			Either<Error,Traversal<DefaultTreeNode>> ret = traverser.traverse(root,evaluator);
+			Either<Error,Traversal<TreeNode>> ret = traverser.traverse(root,evaluator);
 			if(ret.isA()){
 				Assert.fail();
 			}
 			
-			Traversal<DefaultTreeNode> traversal = ret.b();
+			Traversal<TreeNode> traversal = ret.b();
 			TreeNode target = traversal.destination();
 			String expect = path.toString();
 			ByteBuffer value = target.getAttributes().get(key);
@@ -49,7 +49,7 @@
 			
 			List<DefaultNodePath> parts = path.inits();
 			
-			for(Direction<DefaultTreeNode> d : traversal){
+			for(Direction<TreeNode> d : traversal){
 				DefaultNodePath part = parts.head();
 				parts = parts.tail();
 				value = d.getTarget().getAttributes().get(key);
@@ -79,10 +79,10 @@
 	public static ByteBuffer value = ByteBuffer.wrap(key.getBytes());
 	public static DefaultTreeNode factory = new DefaultTreeNode();
 	
-	public DefaultTreeNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address)
+	public TreeNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address)
 	{
-		DefaultTreeNode parent = factory.createNewNode();
-		Either<Error,DefaultTreeNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes()));
+		TreeNode parent = factory.createNewNode();
+		Either<Error,TreeNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes()));
 		if(either.isA()){
 			Assert.fail();
 		}
@@ -93,7 +93,7 @@
 		}
 		
 		for(int i = 0;i < _curY + 1;i ++){
-			DefaultTreeNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i));
+			TreeNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i));
 			either = parent.getChildren().addNewChildAt(i,ch);
 			if(either.isA()){
 				Assert.fail();