# HG changeset patch # User one # Date 1409914500 -32400 # Node ID 9225ff3e32109f927357dc24ac02ab9800bed5c9 # Parent 7058e85875a59d1951cc5eeaa049e4788ea96deb# Parent d8e7f6e13169991ebd20b198f33a3997ef7f3d4b Merge with d8e7f6e13169991ebd20b198f33a3997ef7f3d4b diff -r d8e7f6e13169 -r 9225ff3e3210 document/JungleMindmap.mm diff -r d8e7f6e13169 -r 9225ff3e3210 document/XACML.mm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/document/XACML.mm Fri Sep 05 19:55:00 2014 +0900 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java Fri Sep 05 19:55:00 2014 +0900 @@ -2,6 +2,7 @@ import java.util.Iterator; import java.util.concurrent.ConcurrentHashMap; + import fj.data.List; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; @@ -31,7 +32,7 @@ JungleTree t = j.createNewTree("fuga"); JungleTreeEditor e1 = t.getTreeEditor(); - JungleTreeEditor e2 = t.getTreeEditor(); + //JungleTreeEditor e2 = t.getTreeEditor(); DefaultNodePath root = new DefaultNodePath(); @@ -76,9 +77,9 @@ }; DefaultTreeNode root = new DefaultTreeNode(); - ChangeSet set = new DefaultChangeSet(root.getAsNode(),null,list,uuid,_name,0); - DefaultTreeContext tc = new DefaultTreeContext(root,set); - JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor); + ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name,0); + DefaultTreeContext tc = new DefaultTreeContext(root,set); + JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor); if(trees.putIfAbsent(_name,newTree) != null){ return null; } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,5 @@ 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.persistent.ChangeListWriter; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; @@ -10,16 +9,17 @@ 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> implements JungleTree + +public class DefaultJungleTree implements JungleTree { - private final AtomicReservableReference> repository; + private final AtomicReservableReference repository; private final String uuid; private final ChangeListWriter writer; private final TreeEditor editor; - public DefaultJungleTree(TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor) + public DefaultJungleTree(TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor) { - repository = new AtomicReservableReference>(_tc); + repository = new AtomicReservableReference(_tc); uuid = _uuid; writer = _writer; editor = _editor; @@ -28,10 +28,10 @@ @Override public JungleTreeEditor getTreeEditor() { - TreeContext tc = repository.get(); - DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid); - T root = tc.getTreeNode(); - return new DefaultJungleTreeEditor(root,txManager,editor); + TreeContext tc = repository.get(); + DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid); + TreeNode root = tc.getTreeNode(); + return new DefaultJungleTreeEditor(root,txManager,editor); } @Override @@ -41,9 +41,9 @@ } @Override - public Node getRootNode() + public TreeNode getRootNode() { - TreeContext tc = repository.get(); + TreeContext tc = repository.get(); ChangeSet cs = tc.getChangeSet(); return cs.getRoot(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/Jungle.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,5 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle; + public interface Jungle { public JungleTree getTreeByName(String _name); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTree.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,10 +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 { public JungleTreeEditor getTreeEditor(); public JungleTreeEditor getLocalTreeEditor(); - public Node getRootNode(); + public TreeNode getRootNode(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/JungleTreeEditor.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,15 +1,17 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle; 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 { - public Node getRoot(); + public TreeNode getRoot(); public Either addNewChildAt(NodePath _path,int _pos); public Either deleteChildAt(NodePath _path,int _pos); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/App.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,11 +1,13 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core; import java.nio.ByteBuffer; + import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; 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.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.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @@ -32,7 +34,7 @@ e.success(); - Node root = tree.getRootNode(); + TreeNode root = tree.getRootNode(); ByteBuffer v = root.getAttributes().get(key); String str = new String(v.array()); System.out.println(str); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Children.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,10 +1,11 @@ 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.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -public interface Children extends Iterable +public interface Children extends Iterable { - public Either at(int _pos); + public Either at(int _pos); public int size(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Node.java Fri Sep 05 19:55:00 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 extends AttributesContainer , Parent +public interface Node extends AttributesContainer { -} \ No newline at end of file +}*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Parent.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Parent.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Parent.java Fri Sep 05 19:55:00 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 { public Children getChildren(); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultChangeListWriter.java Fri Sep 05 19:55:00 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 diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/DefaultJournal.java Fri Sep 05 19:55:00 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; diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/persistent/NullJournal.java Fri Sep 05 19:55:00 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 { diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,12 +1,13 @@ 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.persistent.ChangeList; +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 { - public Node getRoot(); + public TreeNode getRoot(); public ChangeSet prev(); public ChangeList getChangeList(); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java Fri Sep 05 19:55:00 2014 +0900 @@ -7,5 +7,5 @@ public interface TreeEditor { - public > Either edit(T _root,NodePath _path,NodeEditor _transformer); + public Either edit(TreeNode _root,NodePath _path,NodeEditor _transformer); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,17 +1,12 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.nio.ByteBuffer; -import fj.data.List; import fj.data.Option; import fj.data.TreeMap; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -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 DefaultAttributes implements Attributes { @@ -31,7 +26,6 @@ return DefaultEither.newB(newNode); } - */ public TreeMap getAttributesAsRawMap() { @@ -55,5 +49,5 @@ { return null; } - */ } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultChildren.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,21 +1,20 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.util.Iterator; import fj.data.List; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; 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.IterableWrapper; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -public class DefaultChildren implements Children +public class DefaultChildren> implements Children> { - private final List children; + private final List> children; - public DefaultChildren(List _children) + public DefaultChildren(List> _children) { children = _children; } @@ -35,7 +34,7 @@ DefaultNode newNode = new DefaultNode(newList,attrs); return DefaultEither.newB(newNode); } - */ + @Override public int size() @@ -72,28 +71,28 @@ return DefaultEither.newB(newNode); } - */ + @Override - public Either at(int _pos) + public Either> at(int _pos) { - Node target = children.index(_pos); + TreeNode target = children.index(_pos); if(target == null){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); // TODO } - Node ret = target; + TreeNode ret = target; return DefaultEither.newB(ret); } - public List getChildrenAsRawList() + public List> getChildrenAsRawList() { return children; } @Override - public Iterator iterator() + public Iterator> iterator() { - return children.iterator(); + return (new IterableWrapper>(children)).iterator(); } -} +}*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.nio.ByteBuffer; import fj.Ord; @@ -42,3 +42,4 @@ return new DefaultAttributes(attrs); } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Fri Sep 05 19:55:00 2014 +0900 @@ -3,7 +3,9 @@ import fj.data.List; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Direction; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; @@ -22,60 +24,57 @@ } @Override - public > Either edit(T _root,NodePath _path,NodeEditor _editor) + public Either edit(TreeNode _root,NodePath _path,NodeEditor _editor) { DefaultEvaluator e = new DefaultEvaluator(_path); - TraversableNodeWrapper wrap = new TraversableNodeWrapper(_root); - Either>> either = traverser.traverse(wrap,e); + Either either = traverser.traverse(_root,e); if(either.isA()){ return DefaultEither.newA(either.a()); } - Traversal> t = either.b(); - Either ret = clone(t,_editor); + Traversal t = either.b(); + Either ret = clone(t,_editor); return ret; } - private > Either clone(Traversal> _t,NodeEditor _editor) + private Either clone(Traversal _t,NodeEditor _editor) { // copying nodes from bottom to root - List>> path = List.nil(); - for(Direction> direction : _t){ + List> path = List.nil(); + for(Direction direction : _t){ path = path.cons(direction); } // target - Direction> targetDirection = path.head(); - T target = targetDirection.getTarget().getWrapped(); - EditableNodeWrapper wrapper = new EditableNodeWrapper(target); - Either> either = _editor.edit(wrapper); + Direction targetDirection = path.head(); + TreeNode target = targetDirection.getTarget(); + Either either = _editor.edit(target); if(either.isA()){ return DefaultEither.newA(either.a()); } - T newNode = either.b().getWrap(); - + TreeNode newNode = either.b(); + OperationLog log = newNode.getLog(); // top int pos = targetDirection.getPosition(); - T child = newNode; - for(Direction> parentDirection : path.tail()){ - TraversableNodeWrapper parent = parentDirection.getTarget(); - TreeNodeChildren chs = parent.getWrapped().getChildren(); - - Either ret = chs.replaceNode(pos,child); + TreeNode child = newNode; + for(Direction parentDirection : path.tail()){ + TreeNodeChildren chs = parentDirection.getTarget().getChildren(); + + Either 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 = new DefaultTreeNode(child,log); return DefaultEither.newB(newRoot); } } \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/EditableNodeWrapper.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/EditableNodeWrapper.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/EditableNodeWrapper.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,9 +1,9 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.nio.ByteBuffer; 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.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; @@ -16,9 +16,9 @@ { private final T wrap; - public EditableNodeWrapper(T _wrap) + public EditableNodeWrapper(T target) { - wrap = _wrap; + wrap = target; } @Override @@ -42,7 +42,7 @@ { private final TreeNodeAttributes attributes; - public EditableAttributesWrapper(T _wrap) + public EditableAttributesWrapper(TreeNode _wrap) { attributes = _wrap.getAttributes(); } @@ -90,15 +90,15 @@ } @Override - public Either at(int _pos) + public Either> at(int _pos) { Either either = children.at(_pos); if(either.isA()){ return DefaultEither.newA(either.a()); } - + T target = either.b(); - Node newWrapper = new NodeWrapper(target); + EditableNodeWrapper newWrapper = new EditableNodeWrapper(target); return DefaultEither.newB(newWrapper); } @@ -109,17 +109,17 @@ } @Override - public Iterator iterator() + public Iterator> iterator() { - IterableConverter.Converter converter = new IterableConverter.Converter(){ + IterableConverter.Converter,T> converter = new IterableConverter.Converter,T>(){ @Override - public Node conv(T _b){ - return new NodeWrapper(_b); + public EditableNodeWrapper conv(T _b){ + return new EditableNodeWrapper(_b); } }; - return new IterableConverter(children,converter).iterator(); + return new IterableConverter,T>(children,converter).iterator(); } @Override @@ -149,3 +149,4 @@ } } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/NodeWrapper.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/NodeWrapper.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/NodeWrapper.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.util.Iterator; @@ -74,3 +74,4 @@ } } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraversableNodeWrapper.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraversableNodeWrapper.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraversableNodeWrapper.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; import java.util.Iterator; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; @@ -66,4 +66,4 @@ } }; } -} +}*/ diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,18 +1,19 @@ 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; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; -public interface TreeNode> extends Parent , AttributesContainer +public interface TreeNode extends AttributesContainer { - @Override - public TreeNodeChildren getChildren(); + public TreeNodeChildren getChildren(); @Override - public TreeNodeAttributes getAttributes(); + public TreeNodeAttributes getAttributes(); + + public TreeNode createNewNode(); - public Node getAsNode(); + public OperationLog getLog(); - public T createNewNode(); + public void putLog(OperationLog _log); + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeAttributes.java Fri Sep 05 19:55:00 2014 +0900 @@ -2,12 +2,14 @@ import java.nio.ByteBuffer; +import fj.data.TreeMap; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes; 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> extends Attributes +public interface TreeNodeAttributes extends Attributes { - public Either delete(String _key); - public Either put(String _key,ByteBuffer _value); + public Either delete(String _key); + public Either put(String _key,ByteBuffer _value); + public TreeMap getAttributesAsRawMap(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TreeNodeChildren.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,15 +1,15 @@ 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.Children; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent; 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> extends Children +public interface TreeNodeChildren extends Children { - public Either addNewChildAt(int _pos); - public Either deleteChildAt(int _pos); - public Either addNewChildAt(int _pos,T _newChild); - public Either replaceNode(int _pos,T _replacement); + public Either addNewChildAt(int _pos); + public Either deleteChildAt(int _pos); + public Either addNewChildAt(int _pos,TreeNode _newChild); + public Either replaceNode(int _pos,TreeNode _replacement); + public List getChildrenAsRawList(); } \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingAttributes.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingAttributes.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingAttributes.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; import java.nio.ByteBuffer; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation; @@ -57,3 +57,4 @@ return edit(putAttribute); } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,7 +1,6 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; +/*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.NodeOperation; @@ -30,10 +29,10 @@ } @Override - public Iterator iterator() + public Iterator> iterator() { EditableChildren children = wrap.getChildren(); - return children.iterator(); + return (Iterator>) children.iterator(); } public Either> edit(NodeOperation _op) @@ -64,15 +63,16 @@ } @Override - public Either at(int _pos) + public Either> at(int _pos) { EditableChildren children = wrap.getChildren(); - Either either = children.at(_pos); + Either either = children.at(_pos); if(either.isA()){ return DefaultEither.newA(either.a()); } - Node node = either.b(); - return DefaultEither.newB(node); + T node = either.b(); + return DefaultEither.newB(new LoggingNode(node)); } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren; @@ -42,3 +42,4 @@ return wrap; } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNodeHook.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,6 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; +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.DefaultEither; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; @@ -18,19 +18,15 @@ } @Override - public > Either edit(T _e) + public Either edit(TreeNode _e) { - LoggingNode loggingNode = new LoggingNode(_e); - Either> either = editor.edit(loggingNode); + Either either = editor.edit(_e); if(either.isA()){ return DefaultEither.newA(either.a()); } + TreeNode newLoggingNode = either.b(); - LoggingNode newLoggingNode = either.b(); - T newNode = newLoggingNode.getWrap(); - log = newLoggingNode.getOperationLog(); - - return DefaultEither.newB(newNode); + return DefaultEither.newB(newLoggingNode); } public OperationLog getLog() @@ -38,3 +34,4 @@ return log; } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java Fri Sep 05 19:55:00 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.trasnformer.AppendChildAt; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -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 > Either invoke(T _target) + /*@Override + public Either invoke(T _target) { AppendChildAt appendChildAt = new AppendChildAt(pos); return appendChildAt.edit(_target); - } + }*/ @Override public int getPosition() diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java Fri Sep 05 19:55:00 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.trasnformer.DeleteAttribute; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -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 > Either invoke(T _target) + /*@Override + public Either invoke(T _target) { DeleteAttribute deleteAttribute = new DeleteAttribute(key); return deleteAttribute.edit(_target); - } + }*/ @Override public int getPosition() diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java Fri Sep 05 19:55:00 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.trasnformer.DeleteChildAt; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -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 > Either invoke(T _target) + /*@Override + public Either invoke(T _target) { DeleteChildAt deleteChildAt = new DeleteChildAt(pos); return deleteChildAt.edit(_target); - } + }*/ @Override public int getPosition() diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/NodeOperation.java Fri Sep 05 19:55:00 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.trasnformer.EditableNode; -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 > Either invoke(T _target); +// public Either invoke(T _target); public int getPosition(); public String getKey(); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java Fri Sep 05 19:55:00 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.trasnformer.EditableNode; -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 > Either invoke(T _target) + /*@Override + public Either invoke(T _target) { PutAttribute putAttribute = new PutAttribute(key,value); return putAttribute.edit(_target); - } + }*/ @Override public int getPosition() diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,5 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 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; @@ -14,9 +15,9 @@ } @Override - public > Either edit(T _e) + public Either edit(TreeNode _e) { - Either either = _e.getChildren().addNewChildAt(pos); + Either either = _e.getChildren().addNewChildAt(pos); if(either.isA()){ // error return either; @@ -24,4 +25,5 @@ return DefaultEither.newB(either.b()); } + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,5 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer; +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; @@ -13,8 +14,9 @@ } @Override - public > Either edit(T _e) + public Either edit(TreeNode _e) { return _e.getAttributes().delete(key); } + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,5 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer; +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; @@ -13,8 +14,9 @@ } @Override - public > Either edit(T _e) + public Either edit(TreeNode _e) { return _e.getChildren().deleteChildAt(pos); } + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java Fri Sep 05 19:55:00 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 delete(String _key); public Either put(String _key,ByteBuffer _value); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,16 +1,16 @@ -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.Node; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError; 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 +public interface EditableChildren> extends Children { public Either addNewChildAt(int _pos); public Either deleteChildAt(int _pos); public final Error OUT_OF_RANGE = new DefaultError(); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,12 +1,12 @@ -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.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 EditableNode> extends AttributesContainer , Parent +public interface EditableNode> extends AttributesContainer , Parent { public EditableAttributes getAttributes(); public EditableChildren getChildren(); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,9 +1,10 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer; +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 NodeEditor { - public > Either edit(T _e); + public Either edit(TreeNode _e); } \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Fri Sep 05 19:55:00 2014 +0900 @@ -2,6 +2,8 @@ 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.impl.TreeNodeAttributes; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @@ -17,9 +19,10 @@ } @Override - public > Either edit(T _e) + public Either edit(TreeNode _e) { - EditableAttributes attrs = _e.getAttributes(); + TreeNodeAttributes attrs = _e.getAttributes(); return attrs.put(key,value); } + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/AtomicReservableReference.java Fri Sep 05 19:55:00 2014 +0900 @@ -11,7 +11,7 @@ String fuga = "fuga"; AtomicReservableReference arr = new AtomicReservableReference(hoge); AtomicReservableReference.Reservation r1 = arr.makeReservation(hoge,fuga); - AtomicReservableReference.Reservation r2 = arr.makeReservation(hoge,fuga); + //AtomicReservableReference.Reservation r2 = arr.makeReservation(hoge,fuga); System.out.println(arr.get()); r1.confirm(); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultChangeSet.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,20 +1,20 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction; -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.store.ChangeSet; +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 implements ChangeSet { - private final Node root; + 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(Node _node,ChangeSet _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,7 +25,7 @@ } @Override - public Node getRoot() + public TreeNode getRoot() { return root; } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,13 +1,12 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction; import java.nio.ByteBuffer; + 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.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; -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.DefaultTreeOperation; @@ -23,21 +22,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> implements JungleTreeEditor +public class DefaultJungleTreeEditor implements JungleTreeEditor { - private final TransactionManager txManager; - private final T root; + private final TransactionManager txManager; + private final TreeNode root; private final TreeEditor editor; private final TreeOperationLog log; - public DefaultJungleTreeEditor(T _root,TransactionManager _txManager,TreeEditor _editor) + public DefaultJungleTreeEditor(TreeNode _root,TransactionManager _txManager,TreeEditor _editor) { this(_root,_txManager,_editor,new DefaultTreeOperationLog()); } - public DefaultJungleTreeEditor(T _root,TransactionManager _txManager,TreeEditor _editor,TreeOperationLog _log) + public DefaultJungleTreeEditor(TreeNode newNode,TransactionManager _txManager,TreeEditor _editor,TreeOperationLog _log) { - root = _root; + root = newNode; txManager = _txManager; editor = _editor; log = _log; @@ -45,14 +44,14 @@ private Either _edit(final NodePath _path,NodeEditor _e) { - LoggingNodeHook hook = new LoggingNodeHook(_e); - Either either = editor.edit(root,_path,hook); + //LoggingNodeHook hook = new LoggingNodeHook(_e); + Either either = editor.edit(root,_path,_e); if(either.isA()){ return DefaultEither.newA(either.a()); } - T newNode = either.b(); - OperationLog newLog = hook.getLog(); + TreeNode newNode = either.b(); + OperationLog newLog = newNode.getLog(); IterableConverter.Converter converter = new IterableConverter.Converter(){ @Override @@ -65,7 +64,7 @@ DefaultTreeOperationLog treeOperationLog = new DefaultTreeOperationLog(iterable,newLog.length()); TreeOperationLog newTreeOpLog = log.append(treeOperationLog); - JungleTreeEditor newEditor = new DefaultJungleTreeEditor(newNode,txManager,editor,newTreeOpLog); + JungleTreeEditor newEditor = new DefaultJungleTreeEditor(newNode,txManager,editor,newTreeOpLog); return DefaultEither.newB(newEditor); } @@ -106,13 +105,13 @@ @Override public Either success() { - Either> either = txManager.commit(root,log); + Either either = txManager.commit(root,log); if(either.isA()){ return DefaultEither.newA(either.a()); } - TransactionManager newTxManager = either.b(); - JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(root,newTxManager,editor); + TransactionManager newTxManager = either.b(); + JungleTreeEditor newTreeEditor = new DefaultJungleTreeEditor(root,newTxManager,editor); return DefaultEither.newB(newTreeEditor); } @@ -130,7 +129,7 @@ } @Override - public Node getRoot() + public TreeNode getRoot() { return null; } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java Fri Sep 05 19:55:00 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,15 +14,15 @@ 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> implements TransactionManager +public class DefaultTransactionManager implements TransactionManager { - private final AtomicReservableReference> repository; - private final TreeContext tip; + private final AtomicReservableReference repository; + private final TreeContext tip; private final ChangeListWriter writer; private final String uuid; - public DefaultTransactionManager(ChangeListWriter _writer,TreeContext _tip, - AtomicReservableReference> _repository,String _uuid) + public DefaultTransactionManager(ChangeListWriter _writer,TreeContext _tip, + AtomicReservableReference _repository,String _uuid) { repository = _repository; tip = _tip; @@ -32,7 +31,7 @@ } @Override - public Either> commit(T _newRoot,final TreeOperationLog _log) + public Either commit(TreeNode _newRoot,final TreeOperationLog _log) { ChangeSet cs = tip.getChangeSet(); long currentRevision = cs.revision(); @@ -54,9 +53,8 @@ } }; - Node root = _newRoot.getAsNode(); - DefaultChangeSet newCs = new DefaultChangeSet(root,cs,list,uuid, _treeName, nextRevision); - DefaultTreeContext newContext = new DefaultTreeContext(_newRoot,newCs); + DefaultChangeSet newCs = new DefaultChangeSet(_newRoot,cs,list,uuid, _treeName, nextRevision); + DefaultTreeContext newContext = new DefaultTreeContext(_newRoot,newCs); @SuppressWarnings("rawtypes") Reservation reservation = repository.makeReservation(tip,newContext); @@ -66,7 +64,7 @@ Result r = writer.write(list); if(r == Result.SUCCESS){ reservation.confirm(); - TransactionManager txManager = new DefaultTransactionManager(writer,newContext,repository,uuid); + TransactionManager txManager = new DefaultTransactionManager(writer,newContext,repository,uuid); return DefaultEither.newB(txManager); } return DefaultEither.newA((Error)new DefaultError()); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeContext.java Fri Sep 05 19:55:00 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> implements TreeContext +public class DefaultTreeContext implements TreeContext { - 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; } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,49 +1,90 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +import java.nio.ByteBuffer; + +import fj.Ord; +import fj.data.List; +import fj.data.TreeMap; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; -public class DefaultTreeNode implements TreeNode +public class DefaultTreeNode implements TreeNode { - private final DefaultNode wrap; + //private final DefaultNode wrap; + private List children; + private TreeMap attrs; + private OperationLog log; + + private static final List NIL_LIST = List.nil(); + private static final TreeMap NIL_MAP = TreeMap.empty(Ord.stringOrd); public DefaultTreeNode() { - this(new DefaultNode()); + this(NIL_LIST,NIL_MAP,new DefaultOperationLog()); + } + + public DefaultTreeNode(List _children,TreeMap _attrs) + { + this(_children, _attrs, new DefaultOperationLog()); } - public DefaultTreeNode(DefaultNode _wrap) + public DefaultTreeNode(TreeNode _node, OperationLog _log) { - wrap = _wrap; + this(_node.getChildren().getChildrenAsRawList(), _node.getAttributes().getAttributesAsRawMap(), _log); + } + + + + public DefaultTreeNode(List _children,TreeMap _attrs, OperationLog _log){ + attrs = _attrs; + children = _children; + log = _log; } @Override public DefaultTreeNodeChildren getChildren() { - return new DefaultTreeNodeChildren(wrap); + return new DefaultTreeNodeChildren(children, attrs); } @Override public DefaultTreeNodeAttribute getAttributes() { - return new DefaultTreeNodeAttribute(wrap); + return new DefaultTreeNodeAttribute(children, attrs,log); } @Override - public DefaultTreeNode createNewNode() - { - return new DefaultTreeNode(new DefaultNode()); + public DefaultTreeNode createNewNode(){ + return new DefaultTreeNode(); } - public DefaultNode getWrap() + /*public DefaultNode getWrap() { return wrap; - } + }*/ - @Override + /*@Override public Node getAsNode() { return getWrap(); } + */ + public DefaultTreeNode clone() + { + return new DefaultTreeNode(children,attrs); + } + + @Override + public OperationLog getLog() { + OperationLog _log = log; + log = new DefaultOperationLog(); + return _log; + } + + @Override + public void putLog(OperationLog _log){ + log = _log; + } + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,68 +1,89 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction; import java.nio.ByteBuffer; + +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.DefaultChildren; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +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.impl.logger.DefaultOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; 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 +public class DefaultTreeNodeAttribute implements TreeNodeAttributes { - private final DefaultNode wrap; + public List children; + public TreeMap attrs; + OperationLog log ; - public DefaultTreeNodeAttribute(DefaultNode _wrap) + public DefaultTreeNodeAttribute(List _children,TreeMap _attrs) { - wrap = _wrap; + children = _children; + attrs = _attrs; + log = new DefaultOperationLog(); + } + + public DefaultTreeNodeAttribute(List _children,TreeMap _attrs,OperationLog _log) + { + children = _children; + attrs = _attrs; + log = _log; } @Override - public Either delete(String _key) + public TreeMap getAttributesAsRawMap(){ + return attrs; + } + + @Override + public Either delete(String _key) { if(_key == null){ return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } - DefaultAttributes attrs = wrap.getAttributes(); - DefaultChildren children = wrap.getChildren(); - - TreeMap raw = attrs.getAttributesAsRawMap(); - if(!raw.contains(_key)){ + if(!attrs.contains(_key)){ return DefaultEither.newA(NodeEditorError.DELETE_KEY_NOT_FOUND); } - TreeMap newMap = raw.delete(_key); + TreeMap newMap = attrs.delete(_key); - DefaultNode newNode = new DefaultNode(children.getChildrenAsRawList(),newMap); - - return DefaultEither.newB(new DefaultTreeNode(newNode)); + OperationLog op = new DefaultOperationLog();; + TreeNode newNode = new DefaultTreeNode(children,newMap,op.add(new DeleteAttributeOperation(_key))); + return DefaultEither.newB(newNode); } @Override - public Either put(String _key, ByteBuffer _value) + public Either put(String _key, ByteBuffer _value) { if(_key == null || _value == null){ return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } - DefaultAttributes attrs = wrap.getAttributes(); - DefaultChildren children = wrap.getChildren(); + //DefaultAttributes attrs = wrap.getAttributes(); + //DefaultChildren children = wrap.getChildren(); - TreeMap raw = attrs.getAttributesAsRawMap(); - TreeMap newMap = raw.set(_key,_value); + //TreeMap raw = attrs.getAttributesAsRawMap(); + TreeMap newMap = attrs.set(_key,_value); + TreeNode newNode = new DefaultTreeNode(children,newMap,log.add(new PutAttributeOperation(_key,_value))); - DefaultNode newNode = new DefaultNode(children.getChildrenAsRawList(),newMap); - - return DefaultEither.newB(new DefaultTreeNode(newNode)); + return DefaultEither.newB(newNode); } @Override public ByteBuffer get(String _key) { - return wrap.getAttributes().get(_key); + if(_key == null){ + return null; + } + + Option result = attrs.get(_key); + return result.isSome() ? result.some() : null; } } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java Fri Sep 05 19:55:00 2014 +0900 @@ -6,18 +6,19 @@ import fj.P2; 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.DefaultAttributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultChildren; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +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.impl.logger.DefaultOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; +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.NodeOperation; 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 +public class DefaultTreeNodeChildren implements TreeNodeChildren { public static void main(String _args[]) { @@ -28,16 +29,18 @@ } - private final DefaultNode node; - - public DefaultTreeNodeChildren(DefaultNode _node) + public List children; + public TreeMap attrs; + + public DefaultTreeNodeChildren(List _children,TreeMap _attrs) { - node = _node; + children = _children; + attrs = _attrs; } private boolean boundaryCheck(int _pos) { - int size = node.getChildren().size(); + int size = children.length(); if(size < _pos){ return false; } @@ -46,112 +49,92 @@ } @Override - public Either addNewChildAt(int _pos) + public List getChildrenAsRawList(){ + return children; + } + @Override + public Either addNewChildAt(int _pos) { if(!boundaryCheck(_pos) || _pos < 0){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } - DefaultChildren children = node.getChildren(); - DefaultAttributes attrs = node.getAttributes(); - - List raw = children.getChildrenAsRawList(); - - P2,List> split = raw.splitAt(_pos); - List newChildren = split._1().snoc(new DefaultNode()).append(split._2()); - Node newNode = new DefaultNode(newChildren,attrs.getAttributesAsRawMap()); - - return DefaultEither.newB(new DefaultTreeNode(newNode)); + P2,List> split = children.splitAt(_pos); + List newChildren = split._1().snoc(new DefaultTreeNode()).append(split._2()); + OperationLog op = new DefaultOperationLog(); + TreeNode newNode = new DefaultTreeNode(newChildren,attrs,op.add(new AppendChildAtOperation(_pos))); + + return DefaultEither.newB(newNode); } @Override - public Either deleteChildAt(int _pos) + public Either deleteChildAt(int _pos) { if(!boundaryCheck(_pos) || _pos < 0 || size() == 0){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } - - DefaultChildren chs = node.getChildren(); - List raw = chs.getChildrenAsRawList(); - - P2,List> split = raw.splitAt(_pos); - List newChildren = split._1().append(split._2().tail()); + + P2,List> split = children.splitAt(_pos); + List newChildren = split._1().append(split._2().tail()); - DefaultAttributes attrs = node.getAttributes(); - TreeMap map = attrs.getAttributesAsRawMap(); + OperationLog op = new DefaultOperationLog(); + TreeNode newNode = new DefaultTreeNode(newChildren,attrs,op.add(new DeleteChildAtOperation(_pos))); - DefaultNode newNode = new DefaultNode(newChildren,map); - - return DefaultEither.newB(new DefaultTreeNode(newNode)); + return DefaultEither.newB(newNode); } @Override public int size() { - return node.getChildren().size(); + return children.length(); } @Override - public Iterator iterator() + public Iterator iterator() { - IterableConverter.Converter converter = new IterableConverter.Converter(){ - @Override - public DefaultTreeNode conv(DefaultNode _b) - { - return new DefaultTreeNode(_b); - } - }; - - List raw = node.getChildren().getChildrenAsRawList(); - return new IterableConverter(raw,converter).iterator(); + return children.iterator(); } @Override - public Either replaceNode(int _pos,DefaultTreeNode _replacement) + public Either replaceNode(int _pos,TreeNode _replacement) { - int size = node.getChildren().size(); + int size = children.length(); if(!(0 <= _pos && _pos < size)){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } - DefaultNode replacement = _replacement.getWrap(); + TreeNode replacement = _replacement; - List rawList = node.getChildren().getChildrenAsRawList(); - P2,List> split = rawList.splitAt(_pos + 1); - List init = split._1().reverse().tail().reverse(); - List newInit = init.snoc(replacement); - List newList = newInit.append(split._2()); - TreeMap rawMap = node.getAttributes().getAttributesAsRawMap(); - - return DefaultEither.newB(new DefaultTreeNode(new DefaultNode(newList,rawMap))); + P2,List> split = children.splitAt(_pos + 1); + List init = split._1().reverse().tail().reverse(); + List newInit = init.snoc(replacement); + List newList = newInit.append(split._2()); + TreeNode node = new DefaultTreeNode(newList,attrs); + return DefaultEither.newB(node); } @Override - public Either at(int _pos) + public Either at(int _pos) { - List rawList = node.getChildren().getChildrenAsRawList(); - DefaultNode ch = rawList.index(_pos); - if(ch == null){ + TreeNode Node = children.index(_pos); + if(Node == null){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } - return DefaultEither.newB(new DefaultTreeNode(ch)); + return DefaultEither.newB(Node); } @Override - public Either addNewChildAt(int _pos,DefaultTreeNode _newChild) + public Either addNewChildAt(int _pos,TreeNode _newChild) { if(!boundaryCheck(_pos) || _pos < 0){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } - Node newChild = _newChild.getWrap(); - List raw = node.getChildren().getChildrenAsRawList(); - TreeMap rawMap = node.getAttributes().getAttributesAsRawMap(); - P2,List> split = raw.splitAt(_pos); - List newChildren = split._1().snoc(newChild).append(split._2()); - Node newNode = new DefaultNode(newChildren,rawMap); + P2,List> split = children.splitAt(_pos); + List newChildren = split._1().snoc(_newChild).append(split._2()); + TreeNode newNode = new DefaultTreeNode(newChildren,attrs); - return DefaultEither.newB(new DefaultTreeNode(newNode)); + return DefaultEither.newB(newNode); } } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TransactionManager.java Fri Sep 05 19:55:00 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> +public interface TransactionManager { - public Either> commit(T _newRoot,TreeOperationLog _log); + public Either commit(TreeNode _newRoot,TreeOperationLog _log); public String getUUID(); public long getRevision(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/TreeContext.java Fri Sep 05 19:55:00 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> +public interface TreeContext { public ChangeSet getChangeSet(); - public T getTreeNode(); + public TreeNode getTreeNode(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,7 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; 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.util.Pair; public class DefaultEvaluator implements Evaluator @@ -13,7 +14,7 @@ } @Override - public > Evaluation evaluate(T _current,int _pos) + public Evaluation evaluate(TreeNode _current,int _pos) { Pair pop = path.pop(); int head = pop.left(); diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java Fri Sep 05 19:55:00 2014 +0900 @@ -3,6 +3,7 @@ import java.util.Iterator; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 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; @@ -12,12 +13,12 @@ public class DefaultTraverser implements Traverser { @Override - public > Either> traverse(final T _root,Evaluator _evaluator) + public Either traverse(final TreeNode _root,Evaluator _evaluator) { - Children wrapper = new Children(){ + Children wrapper = new Children(){ @Override - public Iterator iterator(){ - List list = List.nil(); + public Iterator iterator(){ + List list = List.nil(); return list.cons(_root).iterator(); } @Override @@ -25,7 +26,7 @@ return 1; } @Override - public Either at(int _pos){ + public Either at(int _pos){ if(_pos != 0){ return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); } @@ -34,26 +35,26 @@ }; //Children chs = _root.getChildren(); - Children chs = wrapper; + Children chs = wrapper; - Either>> ret = _traverse(chs,_evaluator,-1); + Either>> ret = _traverse(chs,_evaluator,-1); if(ret.isA()){ return DefaultEither.newA(ret.a()); } - List> list = ret.b(); + List> list = ret.b(); - final Iterable> iterable = list; - final T destination = ret.b().last().getTarget(); + final Iterable> iterable = list; + final TreeNode destination = ret.b().last().getTarget(); - Traversal traversal = new Traversal(){ + Traversal traversal = new Traversal(){ @Override - public Iterator> iterator(){ + public Iterator> iterator(){ return iterable.iterator(); } @Override - public T destination(){ + public TreeNode destination(){ return destination; } }; @@ -61,10 +62,10 @@ return DefaultEither.newB(traversal); } - private > Either>> _traverse(Children _chs,Evaluator _evaluator,int _pos) + private Either>> _traverse(Children _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){ @@ -90,9 +91,37 @@ return DefaultEither.newA(TraverserError.PATH_NOT_FOUND); } - private > List> _goal(final T _current,final int _pos) + private List> _goal(final TreeNode _current,final int _pos) { - Direction d = new Direction(){ + Direction d = new Direction(){ + @Override + public int getPosition() + { + return _pos; + } + @Override + public TreeNode getTarget() + { + return _current; + } + }; + + List> list = List.nil(); + List> newList = list.cons(d); + + return newList; + } + + private Either>> _accept(final T _current,final int _pos,Evaluator _evaluator) + { + Children chs = _current.getChildren(); + Either>> either = _traverse(chs,_evaluator,0); + if(either.isA()){ + return either; + } + + List> list = either.b(); + Direction d = new Direction(){ @Override public int getPosition() { @@ -105,35 +134,7 @@ } }; - List> list = List.nil(); - List> newList = list.cons(d); - - return newList; - } - - private > Either>> _accept(final T _current,final int _pos,Evaluator _evaluator) - { - Children chs = _current.getChildren(); - Either>> either = _traverse(chs,_evaluator,0); - if(either.isA()){ - return either; - } - - List> list = either.b(); - Direction d = new Direction(){ - @Override - public int getPosition() - { - return _pos; - } - @Override - public T getTarget() - { - return _current; - } - }; - - List> newList = list.cons(d); + List> newList = list.cons(d); return DefaultEither.newB(newList); } } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,8 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; + public interface Evaluator { - public > Evaluation evaluate(T _current,int _pos); + public Evaluation evaluate(TreeNode _current,int _pos); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,9 +1,10 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; +/*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> { - public Either> traverse(Evaluator _e); + public Either traverse(Evaluator _e); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java Fri Sep 05 19:55:00 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 extends Iterable { public int size(); } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableNode.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableNode.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,7 +1,8 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Parent; public interface TraversableNode extends Parent { } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,8 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; -public interface Traversal> extends Iterable> +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; + +public interface Traversal extends Iterable> { - public T destination(); + public TreeNode destination(); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,9 +1,12 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; +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 Traverser { - public > Either> traverse(T _root,Evaluator _evaluator); + public Either traverse(final TreeNode _root,Evaluator _evaluator); + + } diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/IterableWrapper.java Fri Sep 05 19:55:00 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 diff -r d8e7f6e13169 -r 9225ff3e3210 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/TraversableWrapper.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/TraversableWrapper.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/util/TraversableWrapper.java Fri Sep 05 19:55:00 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 jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraversableNode; @@ -13,3 +13,4 @@ } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/DefaultJungleTreeTest.java --- a/src/test/java/DefaultJungleTreeTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/DefaultJungleTreeTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,11 +1,12 @@ import java.nio.ByteBuffer; + import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; 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; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Result; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; @@ -25,7 +26,7 @@ public static final String key = "KEY"; public static final ByteBuffer value = ByteBuffer.wrap(key.getBytes()); - public void testSampleTest() + public void testSampleTest() { Jungle j = instance(); j.createNewTree("tree"); @@ -44,7 +45,7 @@ editor1.success(); // check the value ; - Node node = tree.getRootNode(); + TreeNode node = tree.getRootNode(); ByteBuffer v = node.getAttributes().get(key); Assert.assertEquals(0,v.compareTo(value)); diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,17 +1,19 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNodeChildren; import junit.framework.Assert; import junit.framework.TestCase; public abstract class ChildrenTest extends TestCase { public abstract int expectSize(); - public abstract Children instance(); + public abstract DefaultTreeNodeChildren instance(); public void testSize() { int expect = expectSize(); - Children children = instance(); + Children children = instance(); Assert.assertEquals(expect,children.size()); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/ParentTest.java Fri Sep 05 19:55:00 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 diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,9 +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.TraversableNodeWrapper; +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; @@ -26,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 either = currentEditor.edit(currentRoot,part,putAttribute); + Either 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>> either = traverser.traverse(new TraversableNodeWrapper(newRoot),new DefaultEvaluator(part)); + Either either = traverser.traverse(newRoot,new DefaultEvaluator(part)); if(either.isA()){ Assert.fail(); } - DefaultTreeNode target = either.b().destination().getWrapped(); + TreeNode target = either.b().destination(); String expected = part.toString(); String actual = new String(target.getAttributes().get(key).array()); @@ -63,11 +64,11 @@ } for(DefaultNodePath part : path.inits()){ - Either>> either = traverser.traverse(new TraversableNodeWrapper(oldRoot),new DefaultEvaluator(part)); + Either either = traverser.traverse(oldRoot,new DefaultEvaluator(part)); if(either.isA()){ Assert.fail(); } - DefaultTreeNode target = either.b().destination().getWrapped(); + TreeNode target = either.b().destination(); ByteBuffer actual = target.getAttributes().get(key); Assert.assertNull(actual); @@ -81,11 +82,11 @@ DefaultTreeNode node = new DefaultTreeNode(); DefaultNodePath path = new DefaultNodePath(); - Either either = instance.edit(node,path,new AppendChildAt(0)); + Either 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()); } } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/AppendChildAtTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,7 +1,7 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; + +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; @@ -13,15 +13,14 @@ { public void testEdit() { - DefaultTreeNode node = new DefaultTreeNode(new DefaultNode()); + TreeNode node = new DefaultTreeNode(); AppendChildAt op = new AppendChildAt(0); - EditableNodeWrapper wrapper = new EditableNodeWrapper(node); - Either> either = op.edit(wrapper); + Either either = op.edit(node); if(either.isA()){ Assert.fail(); } - DefaultTreeNode newNode = either.b().getWrap(); + TreeNode newNode = either.b(); Assert.assertEquals(1,newNode.getChildren().size()); } } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteAttributeAtTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,8 +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.DefaultNode; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; + +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; @@ -17,20 +17,19 @@ String key = "KEY"; ByteBuffer value = ByteBuffer.wrap(key.getBytes()); - DefaultTreeNode node = new DefaultTreeNode(new DefaultNode()); - Either either = node.getAttributes().put(key, value); + TreeNode node = new DefaultTreeNode(); + Either either = node.getAttributes().put(key, value); if(either.isA()){ Assert.fail(); } node = either.b(); DeleteAttribute op = new DeleteAttribute(key); - EditableNodeWrapper wrapper = new EditableNodeWrapper(node); - Either> either2 = op.edit(wrapper); + Either either2 = op.edit(node); if(either2.isA()){ Assert.fail(); } - DefaultTreeNode newNode = either2.b().getWrap(); + TreeNode newNode = either2.b(); ByteBuffer ret = newNode.getAttributes().get(key); Assert.assertNull(ret); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/DeleteChildAtTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,6 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; +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; @@ -12,8 +12,8 @@ { public void testEdit() { - DefaultTreeNode node = new DefaultTreeNode(); - Either either = node.getChildren().addNewChildAt(0); + TreeNode node = new DefaultTreeNode(); + Either either = node.getChildren().addNewChildAt(0); if(either.isA()){ Assert.fail(); } @@ -21,12 +21,11 @@ Assert.assertEquals(1,node.getChildren().size()); DeleteChildAt op = new DeleteChildAt(0); - EditableNodeWrapper wrapper = new EditableNodeWrapper(node); - Either> either2 = op.edit(wrapper); + Either either2 = op.edit(node); if(either2.isA()){ Assert.fail(); } - node = either2.b().getWrap(); + node = either2.b(); Assert.assertEquals(0,node.getChildren().size()); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableAttributesTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,20 +1,23 @@ -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; + import org.junit.Assert; + import fj.P; import fj.P2; import fj.data.List; +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.EditableAttributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditorError; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import junit.framework.TestCase; -public abstract class EditableAttributesTest> extends TestCase +public abstract class EditableAttributesTest> extends TestCase { - public abstract EditableAttributes instance(); + public abstract TreeNodeAttributes instance(); @SuppressWarnings("unchecked") public static final List> ENTRIES = List.list( @@ -23,12 +26,12 @@ P.p("KEY3",ByteBuffer.wrap("VALUE3".getBytes())) ); - public EditableAttributes createTestData() + public TreeNodeAttributes createTestData() { - EditableAttributes instance = instance(); + TreeNodeAttributes instance = instance(); T node; - EditableAttributes attr = instance; + TreeNodeAttributes attr = instance; for(P2 entry : ENTRIES){ Either either = attr.put(entry._1(),entry._2()); if(either.isA()){ @@ -44,7 +47,7 @@ public void testPutDoesNotAcceptNullValue() { - EditableAttributes instance = instance(); + TreeNodeAttributes instance = instance(); Either either = instance.put("KEY",null); if(!either.isA()){ @@ -69,7 +72,7 @@ public void testDeleteIfKeyExsist() { - EditableAttributes attr = createTestData(); + TreeNodeAttributes attr = createTestData(); for(P2 entry : ENTRIES){ Either either = attr.delete(entry._1()); @@ -85,7 +88,7 @@ public void testDeleteIfKeyNotExist() { - EditableAttributes attr = createTestData(); + TreeNodeAttributes attr = createTestData(); Either either = attr.delete(DUMMY_KEY); if(!either.isA()){ @@ -93,3 +96,4 @@ } } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/EditableChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,7 +1,7 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor; import java.nio.ByteBuffer; -import org.junit.Assert; +/*import org.junit.Assert; 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.store.trasnformer.NodeEditorError; @@ -132,4 +132,4 @@ Assert.assertEquals(size,children.size()); } -} +}*/ diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/nodeeditor/PutAttributeTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -4,8 +4,7 @@ import org.junit.Assert; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; +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; @@ -18,15 +17,15 @@ { String key = "KEY"; ByteBuffer value = ByteBuffer.wrap(key.getBytes()); - DefaultTreeNode node = new DefaultTreeNode(new DefaultNode()); + TreeNode node = new DefaultTreeNode(); PutAttribute op = new PutAttribute(key,value); - EditableNodeWrapper wrapper = new EditableNodeWrapper(node); - Either> either = op.edit(wrapper); + //EditableNodeWrapper wrapper = new EditableNodeWrapper(node); + Either either = op.edit(node); if(either.isA()){ Assert.fail(); } - DefaultTreeNode newNode = either.b().getWrap(); + TreeNode newNode = either.b(); ByteBuffer ret = newNode.getAttributes().get(key); Assert.assertEquals(0,ret.compareTo(value)); } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/treeeditor/TreeNodeChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/treeeditor/TreeNodeChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/treeeditor/TreeNodeChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.treeeditor; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.treeeditor; import java.nio.ByteBuffer; import org.junit.Assert; @@ -34,7 +34,7 @@ instance = either.b(); } - T newNode = instance.createNewNode(); + TreeNode newNode = instance.createNewNode(); String key = "KEY"; ByteBuffer value = ByteBuffer.wrap("VALUE".getBytes()); @@ -78,7 +78,7 @@ // prepare for(int i = 0;i < _count;i ++){ - T newNode = instance.createNewNode(); + TreeNode newNode = instance.createNewNode(); Either either = newNode.getAttributes().put(key,value); if(either.isA()){ Assert.fail("failed to put attributes to child"); @@ -99,7 +99,7 @@ // create node for replacement. ByteBuffer replaceNodeValue = ByteBuffer.wrap("EULAV".getBytes()); - T replacement = instance.createNewNode(); + TreeNode replacement = instance.createNewNode(); Either either = replacement.getAttributes().put(key,replaceNodeValue); if(either.isA()){ Assert.fail("failed to create replacement node"); @@ -128,4 +128,4 @@ Assert.assertEquals(0,expect.compareTo(actual)); } } -} +}*/ diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeAttributesTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,17 +1,16 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.clonable; import java.nio.ByteBuffer; + import fj.Ord; import fj.P2; import fj.data.List; 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.DefaultNode; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; +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; import junit.framework.TestSuite; @@ -21,20 +20,20 @@ { TestSuite suite = new TestSuite(); suite.addTestSuite(AttributeTestImpl.class); - suite.addTestSuite(EditableAttributesTestImpl.class); + //suite.addTestSuite(EditableAttributesTestImpl.class); return suite; } public static DefaultTreeNode instance() { - List rawList = List.nil(); + List rawList = List.nil(); TreeMap rawMap = TreeMap.empty(Ord.stringOrd); for(P2 entry : AttributesTest.ENTRIES){ rawMap = rawMap.set(entry._1(),entry._2()); } - return new DefaultTreeNode(new DefaultNode(rawList,rawMap)); + return new DefaultTreeNode(rawList,rawMap); } public static class AttributeTestImpl extends AttributesTest @@ -48,16 +47,15 @@ } - public static class EditableAttributesTestImpl extends EditableAttributesTest> + /*public static class EditableAttributesTestImpl extends EditableAttributesTest { @Override - public EditableAttributes> instance() + public DefaultTreeNodeAttribute instance() { DefaultTreeNode instance = DefaultTreeNodeAttributesTest.instance(); - EditableNodeWrapper wrapper = new EditableNodeWrapper(instance); - return wrapper.getAttributes(); + return instance.getAttributes(); } - } + }*/ } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,8 +1,7 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.clonable; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.clonable; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor.EditableChildrenTest; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.treeeditor.TreeNodeChildrenTest; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; @@ -21,7 +20,7 @@ public static DefaultTreeNode instance() { - return new DefaultTreeNode(new DefaultNode()); + return new DefaultTreeNode(); } public static class TreeNodeChildrenTestImpl extends TreeNodeChildrenTest @@ -43,4 +42,4 @@ return wrapper.getChildren(); } } -} +}*/ diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/clonable/DefaultTreeNodeTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -2,8 +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.store.impl.DefaultNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; import junit.framework.Assert; import junit.framework.TestCase; @@ -15,22 +13,19 @@ { TestSuite suite = new TestSuite(); suite.addTestSuite(AttributesContaierTestImpl.class); - suite.addTestSuite(ParentTestImpl.class); + //suite.addTestSuite(ParentTestImpl.class); return suite; } public static DefaultTreeNode instance() { - DefaultTreeNode node = new DefaultTreeNode(new DefaultNode()); + DefaultTreeNode node = new DefaultTreeNode(); return node; } public void testGetWrapped() { DefaultTreeNode instance = instance(); - DefaultNode wrapped = instance.getWrap(); - - Assert.assertNotNull(wrapped); } public void testCreateNewNode() @@ -50,7 +45,7 @@ } } - public static class ParentTestImpl extends ParentTest + /*public static class ParentTestImpl extends ParentTest { @Override @@ -58,5 +53,5 @@ { return DefaultTreeNodeTest.instance(); } - } + }*/ } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingAttributesTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingAttributesTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingAttributesTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; import java.nio.ByteBuffer; @@ -9,7 +9,6 @@ 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.DefaultNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; @@ -29,14 +28,14 @@ public static LoggingNode> instance() { - List rawList = List.nil(); + List rawList = List.nil(); TreeMap rawMap = TreeMap.empty(Ord.stringOrd); for(P2 entry : AttributesTest.ENTRIES){ rawMap = rawMap.set(entry._1(),entry._2()); } - EditableNodeWrapper wrapper = new EditableNodeWrapper(new DefaultTreeNode(new DefaultNode(rawList,rawMap))); + EditableNodeWrapper wrapper = new EditableNodeWrapper(new DefaultTreeNode (rawList,rawMap)); return new LoggingNode>(wrapper); } @@ -61,3 +60,4 @@ } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.nodeeditor.EditableChildrenTest; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.EditableNodeWrapper; @@ -32,3 +32,4 @@ } } } +*/ \ No newline at end of file diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingNodeTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingNodeTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/logging/LoggingNodeTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,4 +1,4 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; +/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.impl.logging; import java.nio.ByteBuffer; import org.junit.Assert; @@ -158,4 +158,4 @@ return LoggingNodeTest.instance(); } } -} +}*/ diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultAttributesTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -10,14 +10,15 @@ import fj.data.Option; 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.DefaultNode; +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; public class DefaultAttributesTest extends AttributesTest { - public DefaultAttributes instance() + public TreeNodeAttributes instance() { - List rawList = List.nil(); + List rawList = List.nil(); TreeMap rawMap = TreeMap.empty(Ord.stringOrd); // add attributes @@ -26,13 +27,13 @@ rawMap = rawMap.set(entry._1(),entry._2()); } - DefaultNode node = new DefaultNode(rawList,rawMap); + TreeNode node = new DefaultTreeNode(rawList,rawMap); return node.getAttributes(); } public void testGetAttributesAsRawMap() { - DefaultAttributes attrs = instance(); + TreeNodeAttributes attrs = instance(); TreeMap rawMap = attrs.getAttributesAsRawMap(); // testing rawmap is not null. diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultChildrenTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -8,24 +8,24 @@ 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.DefaultChildren; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; +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 +public class DefaultChildrenTest extends ChildrenTest { @Override - public DefaultChildren instance() + public DefaultTreeNodeChildren instance() { - List rawList = List.nil(); + List rawList = List.nil(); for(int i = 0;i < expectSize();i ++){ - rawList = rawList.cons(new DefaultNode()); + rawList = rawList.cons(new DefaultTreeNode()); } TreeMap rawMap = TreeMap.empty(Ord.stringOrd); - return new DefaultNode(rawList,rawMap).getChildren(); + return new DefaultTreeNode(rawList,rawMap).getChildren(); } @Override @@ -36,8 +36,8 @@ public void testGetChildrenAsRawList() { - DefaultChildren instance = instance(); - List rawList = instance.getChildrenAsRawList(); + DefaultTreeNodeChildren instance = instance(); + List rawList = instance.getChildrenAsRawList(); Assert.assertNotNull(rawList); Assert.assertEquals(expectSize(),rawList.length()); diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/impl/node/DefaultNodeTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -7,8 +7,8 @@ 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.DefaultNode; +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,15 +23,15 @@ { TestSuite suite = new TestSuite(); suite.addTestSuite(DefaultNodeTest.AttributesContaierTestImpl.class); - suite.addTestSuite(DefaultNodeTest.ParentTestImpl.class); + //suite.addTestSuite(DefaultNodeTest.ParentTestImpl.class); return suite; } - public static DefaultNode instance() + public static DefaultTreeNode instance() { - List rawList = List.nil(); + List rawList = List.nil(); TreeMap rawMap = TreeMap.empty(Ord.stringOrd); - DefaultNode node = new DefaultNode(rawList,rawMap); + DefaultTreeNode node = new DefaultTreeNode(rawList,rawMap); return node; } @@ -45,13 +45,13 @@ } } - public static class ParentTestImpl extends ParentTest + /*public static class ParentTestImpl extends ParentTest { @Override - public DefaultNode instance() + public DefaultTreeNode instance() { return DefaultNodeTest.instance(); } - } + }*/ } diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java Fri Sep 05 19:55:00 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 either = parent.getAttributes().put("KEY",ByteBuffer.wrap(_path.toString().getBytes())); + TreeNode parent = new DefaultTreeNode(); + Either 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; diff -r d8e7f6e13169 -r 9225ff3e3210 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java --- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java Wed Sep 03 15:56:40 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java Fri Sep 05 19:55:00 2014 +0900 @@ -1,14 +1,13 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverse; import java.nio.ByteBuffer; + import org.junit.Assert; import fj.data.List; - import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper; +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.traverser.DefaultEvaluator; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Direction; @@ -25,9 +24,9 @@ public void testTraverse() { int maxHeight = 3; - DefaultTreeNode root = createTree(0,0,maxHeight,new DefaultNodePath()); + TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath()); - TraversableNodeWrapper traversable = new TraversableNodeWrapper(root); + //TraversableNodeWrapper traversable = new TraversableNodeWrapper(root); Traverser traverser = instance(); // generate all pattern. @@ -36,24 +35,24 @@ for(DefaultNodePath path : paths){ DefaultEvaluator evaluator = new DefaultEvaluator(path); - Either>> ret = traverser.traverse(traversable,evaluator); + Either ret = traverser.traverse(root,evaluator); if(ret.isA()){ Assert.fail(); } - Traversal> traversal = ret.b(); - TraversableNodeWrapper target = traversal.destination(); + Traversal traversal = ret.b(); + TreeNode target = traversal.destination(); String expect = path.toString(); - ByteBuffer value = target.getWrapped().getAttributes().get(key); + ByteBuffer value = target.getAttributes().get(key); String actual = new String(value.array()); Assert.assertEquals(expect,actual); List parts = path.inits(); - for(Direction> d : traversal){ + for(Direction d : traversal){ DefaultNodePath part = parts.head(); parts = parts.tail(); - value = d.getTarget().getWrapped().getAttributes().get(key); + value = d.getTarget().getAttributes().get(key); String actualCurrentPathStr = new String(value.array()); String expectCurrentPathStr = part.toString(); Assert.assertEquals(expectCurrentPathStr,actualCurrentPathStr); @@ -78,12 +77,12 @@ public static String key = "KEY"; public static ByteBuffer value = ByteBuffer.wrap(key.getBytes()); - public static DefaultTreeNode factory = new DefaultTreeNode(new DefaultNode()); + 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 either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes())); + TreeNode parent = factory.createNewNode(); + Either either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes())); if(either.isA()){ Assert.fail(); } @@ -94,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();