Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/editor/treeEditor/DifferenceTreeEditor.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | de68d37fec80 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.treeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.LoggingNode; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Evaluator; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traverser; import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; public class DifferenceTreeEditor implements TreeEditor { private Traverser traverser; public DifferenceTreeEditor(Traverser traverser) { this.traverser = traverser; } @Override public Either<Error, LoggingNode> edit(TreeNode subTreeRoot, NodePath path, NodeEditor editor) { Evaluator evalutor = new DefaultEvaluator(path); Either<Error,Traversal> traverseEither = traverser.traverse(subTreeRoot, evalutor); if (traverseEither.isA()) { return DefaultEither.newA(traverseEither.a()); } Traversal traversal = traverseEither.b(); TreeNode target = traversal.destination(); return editor.edit(target); } }