# HG changeset patch # User Shoshi TAMAKI # Date 1358274237 -32400 # Node ID 418088ca2b30ab4037cbfbc7681239de1038d7a5 # Parent 592ee5f27ad2baca85e01228228e6c1f47e3862b added Generics parameters to EditableNode framework diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Tree.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Tree.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core; - -public interface Tree -{ - public Node getRoot(); -} diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/ChangeSet.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,12 +1,12 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation; public interface ChangeSet { - public Tree getTree(); + public Node getRoot(); public ChangeSet prev(); public ChangeList getChangeList(); diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableNode.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableNode.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Evaluator; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Parent; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; - -public interface TraversableNode extends Parent -{ - public Traversal traverse(Evaluator _e); -} diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableTree.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TraversableTree.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversable; - -public interface TraversableTree extends Traversable -{ -} diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/TreeEditor.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,13 +1,14 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store; import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; 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 TreeEditor { - public TraversableTree getTree(); public Either appendChild(NodePath _path,int _pos); public Either deleteChild(NodePath _path,int _pos); public Either putAttribute(NodePath _path,String _key,ByteBuffer _value); diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultNode.java Wed Jan 16 03:23:57 2013 +0900 @@ -2,17 +2,14 @@ import java.nio.ByteBuffer; import java.util.Iterator; - import fj.Ord; import fj.data.List; import fj.data.TreeMap; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Children; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Parent; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraversableChildren; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraversableNode; -public class DefaultNode implements EditableNode , Parent +public class DefaultNode implements EditableNode , TraversableNode { public List children; public TreeMap attrs; @@ -49,9 +46,9 @@ } @Override - public Children children() + public TraversableChildren children() { - return new Children(){ + return new TraversableChildren(){ @Override public Iterator iterator() { diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTraversableTree.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Tree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TraversableTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Evaluator; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; - -public class DefaultTraversableTree implements TraversableTree -{ - private final Tree tree; - private final Traverser traverser; - - public DefaultTraversableTree(Tree _tree,Traverser _traverser) - { - tree = _tree; - traverser = _traverser; - } - - @Override - public Either> traverse(Evaluator _e) - { - Node root = tree.getRoot(); - return traverser.traverse(root,_e); - } -} diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Wed Jan 16 03:23:57 2013 +0900 @@ -74,7 +74,7 @@ } @Override - public Either edit(NodePath _path, NodeEditor _editor) + public Either edit(NodePath _path,NodeEditor _editor) { DefaultTree tree = tip.getTree(); DefaultNode root = tree.getRoot(); @@ -103,7 +103,12 @@ // target Direction targetDirection = path.head(); - LoggingNode loggingNode = (LoggingNode)_editor.edit(new LoggingNode(targetDirection.getTarget())); + Either> either = _editor.edit(new LoggingNode(targetDirection.getTarget())); + if(either.isA()){ + return DefaultEither.newA(either.a()); + } + + LoggingNode loggingNode = either.b(); Logger logger = loggingNode.getLogger(); DefaultNode newNode = (DefaultNode)loggingNode.getWrapper(); @@ -113,12 +118,12 @@ for(Direction parentDirection : path.tail()){ DefaultNode parent = parentDirection.getTarget(); DefaultChildren chs = parent.getChildren(); - Either either = chs.replaceNode(child,pos); - if(either.isA()){ - return DefaultEither.newA(either.a()); + Either ret = chs.replaceNode(child,pos); + if(ret.isA()){ + return DefaultEither.newA(ret.a()); } - DefaultNode newParent = either.b(); + DefaultNode newParent = ret.b(); child = newParent; pos = parentDirection.getPosition(); } @@ -131,7 +136,7 @@ protected Either newEditor(Logger _logger,DefaultNode _newRoot) { List logs = List.list(_logger); - TreeEditor newEditor = new DefaultModifiedTreeEditor(logs, + TreeEditor newEditor = null; return DefaultEither.newB(_theB); } } \ No newline at end of file diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/TraverserProvider.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,9 +1,9 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Parent; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraversableNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; public interface TraverserProvider { - public > Traverser newTraverser(); + public > Traverser newTraverser(); } diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/DefaultLogger.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/DefaultLogger.java Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/DefaultLogger.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,27 +1,22 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger; import java.util.Iterator; - import fj.data.List; - import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.Operation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; public class DefaultLogger implements Logger { - private final EditableNode wrap; private final List log; private static final List EMPTY = List.nil(); - public DefaultLogger(EditableNode _wrap) + public DefaultLogger() { - this(_wrap,EMPTY); + this(EMPTY); } - private DefaultLogger(EditableNode _wrap,List _log) + private DefaultLogger(List _log) { - wrap = _wrap; log = _log; } @@ -34,6 +29,6 @@ @Override public Logger add(Operation _op) { - return new DefaultLogger(wrap,log.cons(_op)); + return new DefaultLogger(log.cons(_op)); } } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingAttributes.java Wed Jan 16 03:23:57 2013 +0900 @@ -10,12 +10,13 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -public class LoggingAttributes implements EditableAttributes +public class LoggingAttributes> + implements EditableAttributes> { - private final EditableAttributes wrap; + private final EditableAttributes wrap; private final Logger log; - public LoggingAttributes(EditableAttributes _wrap,Logger _log) + public LoggingAttributes(EditableAttributes _wrap,Logger _log) { wrap = _wrap; log = _log; @@ -28,12 +29,12 @@ } @Override - public Either delete(final String _key) + public Either> delete(final String _key) { - Either either = wrap.delete(_key); + Either either = wrap.delete(_key); if(either.isA()){ - return either; + return DefaultEither.newA(either.a()); } Operation opDelete = new DeleteAttributeOperation(){ @@ -44,18 +45,18 @@ }; Logger newLog = log.add(opDelete); - EditableNode newWrap = either.b(); - EditableNode newLoggingNode = new LoggingNode(newWrap,newLog); + T newWrap = either.b(); + LoggingNode newLoggingNode = new LoggingNode(newWrap,newLog); return DefaultEither.newB(newLoggingNode); } @Override - public Either put(final String _key,final ByteBuffer _value) + public Either> put(final String _key,final ByteBuffer _value) { - Either either = wrap.put(_key,_value); + Either either = wrap.put(_key,_value); if(either.isA()){ - return either; + return DefaultEither.newA(either.a()); } Operation opPut = new SetAttributeOperation(){ @@ -71,7 +72,7 @@ }; Logger newLog = log.add(opPut); - EditableNode newLoggingNode = new LoggingNode(either.b(),newLog); + LoggingNode newLoggingNode = new LoggingNode(either.b(),newLog); return DefaultEither.newB(newLoggingNode); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingChildren.java Wed Jan 16 03:23:57 2013 +0900 @@ -13,12 +13,13 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableWrapper; -public class LoggingChildren implements EditableChildren +public class LoggingChildren> + implements EditableChildren> { - private final EditableChildren wrap; + private final EditableChildren wrap; private final Logger log; - public LoggingChildren(EditableChildren _wrap,Logger _log) + public LoggingChildren(EditableChildren _wrap,Logger _log) { wrap = _wrap; log = _log; @@ -38,11 +39,11 @@ } @Override - public Either addNewChildAt(final int _pos) + public Either> addNewChildAt(final int _pos) { - Either either = wrap.addNewChildAt(_pos); + Either either = wrap.addNewChildAt(_pos); if(either.isA()){ - return either; + return DefaultEither.newA(either.a()); } Operation opAddChild = new AppendChildAtOperation(){ @@ -53,18 +54,18 @@ }; Logger newLog = log.add(opAddChild); - EditableNode newWrap = either.b(); - EditableNode newLoggingNode = new LoggingNode(newWrap,newLog); + T newWrap = either.b(); + LoggingNode newLoggingNode = new LoggingNode(newWrap,newLog); return DefaultEither.newB(newLoggingNode); } @Override - public Either deleteChildAt(final int _pos) + public Either> deleteChildAt(final int _pos) { - Either either = wrap.deleteChildAt(_pos); + Either either = wrap.deleteChildAt(_pos); if(either.isA()){ - return either; + return DefaultEither.newA(either.a()); } Operation opDeleteChild = new DeleteChildAtOperation(){ @@ -75,7 +76,7 @@ }; Logger newLog = log.add(opDeleteChild); - EditableNode newLoggingNode = new LoggingNode(either.b(),newLog); + LoggingNode newLoggingNode = new LoggingNode(either.b(),newLog); return DefaultEither.newB(newLoggingNode); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/logger/LoggingNode.java Wed Jan 16 03:23:57 2013 +0900 @@ -4,32 +4,33 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableChildren; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; -public class LoggingNode implements EditableNode +public class LoggingNode> + implements EditableNode> { - public LoggingNode(EditableNode _wrap) + public LoggingNode(T _wrap) { - this(_wrap,new DefaultLogger(_wrap)); + this(_wrap,new DefaultLogger()); } - public LoggingNode(EditableNode _wrap,Logger _log) + public LoggingNode(T _wrap,Logger _log) { wrap = _wrap; log = _log; } - private final EditableNode wrap; + private final T wrap; private final Logger log; @Override - public EditableAttributes getAttributes() + public EditableAttributes> getAttributes() { - return new LoggingAttributes(wrap.getAttributes(),log); + return new LoggingAttributes(wrap.getAttributes(),log); } @Override - public EditableChildren getChildren() + public EditableChildren> getChildren() { - return new LoggingChildren(wrap.getChildren(),log); + return new LoggingChildren(wrap.getChildren(),log); } public Logger getLogger() @@ -37,7 +38,7 @@ return log; } - public EditableNode getWrapper() + public T getWrapper() { return wrap; } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java Wed Jan 16 03:23:57 2013 +0900 @@ -14,9 +14,9 @@ } @Override - public Either edit(EditableNode _e) + public > Either edit(T _e) { - Either either = _e.getChildren().addNewChildAt(pos); + Either either = _e.getChildren().addNewChildAt(pos); if(either.isA()){ // error return either; diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java Wed Jan 16 03:23:57 2013 +0900 @@ -13,7 +13,7 @@ } @Override - public Either edit(EditableNode _e) + public > Either edit(T _e) { return _e.getAttributes().delete(key); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java Wed Jan 16 03:23:57 2013 +0900 @@ -13,7 +13,7 @@ } @Override - public Either edit(EditableNode _e) + public > Either edit(T _e) { return _e.getChildren().deleteChildAt(pos); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableAttributes.java Wed Jan 16 03:23:57 2013 +0900 @@ -6,10 +6,11 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -public interface EditableAttributes extends Attributes +public interface EditableAttributes> + 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 static final Error KEY_NOT_FOUND = new DefaultError(); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableChildren.java Wed Jan 16 03:23:57 2013 +0900 @@ -5,10 +5,11 @@ 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 Either addNewChildAt(int _pos); + public Either deleteChildAt(int _pos); public final Error OUT_OF_RANGE = new DefaultError(); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/EditableNode.java Wed Jan 16 03:23:57 2013 +0900 @@ -2,11 +2,13 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -public interface EditableNode extends Node +public interface EditableNode> + extends Node { @Override - public EditableAttributes getAttributes(); + public EditableAttributes getAttributes(); @Override - public EditableChildren getChildren(); -} \ No newline at end of file + public EditableChildren getChildren(); +} + diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java Wed Jan 16 03:23:57 2013 +0900 @@ -5,5 +5,5 @@ public interface NodeEditor { - public Either edit(EditableNode _e); + public > Either edit(T _e); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Wed Jan 16 03:23:57 2013 +0900 @@ -17,9 +17,9 @@ } @Override - public Either edit(EditableNode _e) + public > Either edit(T _e) { - EditableAttributes attrs = _e.getAttributes(); + EditableAttributes attrs = _e.getAttributes(); return attrs.put(key,value); } } diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Children.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Children.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; - -public interface Children extends Iterable -{ - public int size(); -} diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluation.java Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluation.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,6 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; -public class DefaultEvaluation> implements Evaluation +public class DefaultEvaluation> implements Evaluation { private final Result result; private final Evaluator evaluator; diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultEvaluator.java Wed Jan 16 03:23:57 2013 +0900 @@ -3,7 +3,7 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; -public class DefaultEvaluator> implements Evaluator +public class DefaultEvaluator> implements Evaluator { private final NodePath path; diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/DefaultTraverser.java Wed Jan 16 03:23:57 2013 +0900 @@ -7,12 +7,12 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import fj.data.List; -public class DefaultTraverser> implements Traverser +public class DefaultTraverser> implements Traverser { @Override public Either> traverse(final T _root,Evaluator _evaluator) { - Children wrapper = new Children(){ + TraversableChildren wrapper = new TraversableChildren(){ @Override public Iterator iterator(){ List list = List.nil(); @@ -47,7 +47,7 @@ return DefaultEither.newB(traversal); } - private Either>> _traverse(Children _chs,Evaluator _evaluator) + private Either>> _traverse(TraversableChildren _chs,Evaluator _evaluator) { int pos = 0; for(T ch : _chs){ @@ -75,7 +75,7 @@ private Either>> _accept(final T _current,final int _pos,Evaluator _evaluator) { - Children chs = _current.children(); + TraversableChildren chs = _current.children(); Either>> either = _traverse(chs,_evaluator); if(either.isA()){ return either; diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluation.java Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluation.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,6 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; -public interface Evaluation> +public interface Evaluation> { public Result result(); public Evaluator evaluator(); diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Evaluator.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,6 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; -public interface Evaluator> +public interface Evaluator> { public Evaluation evaluate(T _current,int _pos); } diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Parent.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Parent.java Tue Jan 15 23:39:44 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; - -public interface Parent -{ - public Children children(); -} diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversable.java Wed Jan 16 03:23:57 2013 +0900 @@ -3,7 +3,7 @@ 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 interface Traversable> { public Either> traverse(Evaluator _e); } diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableChildren.java Wed Jan 16 03:23:57 2013 +0900 @@ -0,0 +1,6 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; + +public interface TraversableChildren extends Iterable +{ + public int size(); +} diff -r 592ee5f27ad2 -r 418088ca2b30 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableNode.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/TraversableNode.java Wed Jan 16 03:23:57 2013 +0900 @@ -0,0 +1,6 @@ +package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; + +public interface TraversableNode +{ + public TraversableChildren children(); +} diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traversal.java Wed Jan 16 03:23:57 2013 +0900 @@ -1,6 +1,6 @@ package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser; -public interface Traversal> extends Iterable> +public interface Traversal> extends Iterable> { public T destination(); } diff -r 592ee5f27ad2 -r 418088ca2b30 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 Tue Jan 15 23:39:44 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/Traverser.java Wed Jan 16 03:23:57 2013 +0900 @@ -3,7 +3,7 @@ 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 interface Traverser> { public Either> traverse(T _root,Evaluator _evaluator); }