Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java @ 25:1b448f9249ee
mark
author | Shoshi TAMAKI |
---|---|
date | Sun, 13 Jan 2013 20:52:19 +0900 |
parents | 3ef2a66a8c5d |
children | 5f4172d6fb8b |
comparison
equal
deleted
inserted
replaced
24:ec033569ab8f | 25:1b448f9249ee |
---|---|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditorError; | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditorError; |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute; | 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute; |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt; |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor; | 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor; |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.SetAttribute; | 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute; |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverseEvaluator; | 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverseEvaluator; |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; |
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.TraverseResult; | |
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; | 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; |
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; | 22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; |
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
26 | 25 |
55 } | 54 } |
56 | 55 |
57 @Override | 56 @Override |
58 public Either<Error,TreeEditor> putAttribute(NodePath _path, String _key,ByteBuffer _value) | 57 public Either<Error,TreeEditor> putAttribute(NodePath _path, String _key,ByteBuffer _value) |
59 { | 58 { |
60 return edit(_path,new SetAttribute(_key,_value)); | 59 return edit(_path,new PutAttribute(_key,_value)); |
61 } | 60 } |
62 | 61 |
63 @Override | 62 @Override |
64 public Either<Error,TreeEditor> deleteAttribute(NodePath _path, String _key) | 63 public Either<Error,TreeEditor> deleteAttribute(NodePath _path, String _key) |
65 { | 64 { |
73 } | 72 } |
74 | 73 |
75 @Override | 74 @Override |
76 public Either<Error,TreeEditor> edit(NodePath _path, NodeEditor _editor) | 75 public Either<Error,TreeEditor> edit(NodePath _path, NodeEditor _editor) |
77 { | 76 { |
78 Tree t = tip.getTree(); | 77 Tree tree = tip.getTree(); |
79 Traverser traverser = new DefaultTraverser(); | 78 Traverser traverser = new DefaultTraverser(); |
80 DefaultTraverseEvaluator te = new DefaultTraverseEvaluator(_path); | 79 DefaultTraverseEvaluator te = new DefaultTraverseEvaluator(_path); |
81 Iterable<Traversal> result = traverser.traverse(t,te); | |
82 Iterator<Traversal> itr = result.iterator(); | |
83 | 80 |
84 if(itr.hasNext()){ | 81 for(Traversal traversal : traverser.traverse(tree,te)){ |
85 Traversal r = itr.next(); | 82 return clone(traversal); |
86 cloneAndApplyToNodeEditorFromRoot(r,_editor); | |
87 } | 83 } |
88 | 84 |
89 return DefaultEither.newA(TreeEditorError.NODEPATH_NOTFOUND); | 85 return DefaultEither.newA(TreeEditorError.NODEPATH_NOTFOUND); |
86 } | |
87 | |
88 public Either<Error,TreeEditor> clone(Traversal _traversal) | |
89 { | |
90 for(Node node : _traversal){ | |
91 DefaultNode defNode = (DefaultNode)node; | |
92 } | |
93 return null; | |
90 } | 94 } |
91 | 95 |
92 public void cloneAndApplyToNodeEditorFromRoot(Traversal _r,NodeEditor _editor) | 96 public void cloneAndApplyToNodeEditorFromRoot(Traversal _r,NodeEditor _editor) |
93 { | 97 { |
94 LinkedList<DefaultNode> path = new LinkedList<DefaultNode>(); | 98 LinkedList<DefaultNode> path = new LinkedList<DefaultNode>(); |