# HG changeset patch # User one # Date 1410766313 -32400 # Node ID 98e256d9fd571cd251532490ebd68c011d18d9d4 # Parent 5df5505e1c1eca62852c4173c18062711a575466 treeAttribute add get String but has error diff -r 5df5505e1c1e -r 98e256d9fd57 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/Attributes.java Mon Sep 15 16:31:53 2014 +0900 @@ -5,4 +5,5 @@ public interface Attributes { public ByteBuffer get(String key); + public String getString(String key); } diff -r 5df5505e1c1e -r 98e256d9fd57 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 Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Mon Sep 15 16:31:53 2014 +0900 @@ -26,7 +26,6 @@ public Either edit(TreeNode root,NodePath path,NodeEditor editor) { DefaultEvaluator e = new DefaultEvaluator(path); - //TraversableNodeWrapper wrap = new TraversableNodeWrapper(_root); Either either = traverser.traverse(root,e); if(either.isA()){ diff -r 5df5505e1c1e -r 98e256d9fd57 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 Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultJungleTreeEditor.java Mon Sep 15 16:31:53 2014 +0900 @@ -34,6 +34,11 @@ private final TreeEditor editor; private final TreeOperationLog log; + public DefaultJungleTreeEditor(TreeNode root) + { + this(root,txManager,_editor,new DefaultTreeOperationLog()); + } + public DefaultJungleTreeEditor(TreeNode _root,TransactionManager _txManager,TreeEditor _editor) { this(_root,_txManager,_editor,new DefaultTreeOperationLog()); @@ -49,7 +54,6 @@ private Either _edit(final NodePath _path,NodeEditor _e) { - //LoggingNodeHook hook = new LoggingNodeHook(_e); Either either = editor.edit(root,_path,_e); if(either.isA()){ return DefaultEither.newA(either.a()); diff -r 5df5505e1c1e -r 98e256d9fd57 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 Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java Mon Sep 15 16:31:53 2014 +0900 @@ -44,11 +44,11 @@ @Override public Either delete(String _key) { - if(_key == null){ + if (_key == null) { return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } - if(!attrs.contains(_key)){ + if (!attrs.contains(_key)) { return DefaultEither.newA(NodeEditorError.DELETE_KEY_NOT_FOUND); } @@ -60,14 +60,10 @@ @Override public Either put(String _key, ByteBuffer _value) { - if(_key == null || _value == null){ + if (_key == null || _value == null) { return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } - //DefaultAttributes attrs = wrap.getAttributes(); - //DefaultChildren children = wrap.getChildren(); - - //TreeMap raw = attrs.getAttributesAsRawMap(); TreeMap newMap = attrs.set(_key,_value); TreeNode newNode = new DefaultTreeNode(children,newMap); return DefaultEither.newB(newNode); @@ -76,11 +72,19 @@ @Override public ByteBuffer get(String _key) { - if(_key == null){ + if (_key == null) { return null; } Option result = attrs.get(_key); return result.isSome() ? result.some() : null; } + + @Override + public String getString(String key) { + ByteBuffer attribute = get(key); + if (attribute != null) + return new String(attribute.array()); + return null; + } } diff -r 5df5505e1c1e -r 98e256d9fd57 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java Mon Sep 15 16:31:53 2014 +0900 @@ -2,6 +2,7 @@ import java.util.Iterator; +import fj.Ord; import fj.data.List; import fj.data.TreeMap; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; @@ -17,12 +18,18 @@ import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.UpdateQuery; public class InterfaceTraverser { + InterfaceTraverser traverser; - TreeNode node; TreeMap>>> index; JungleTreeEditor editor; + public InterfaceTraverser(TreeNode _root, JungleTreeEditor editor) { + this.node = _root; + this.index = TreeMap.empty(Ord.stringOrd); + this.editor = editor; + } + public InterfaceTraverser(TreeNode _root, TreeMap>>> index, JungleTreeEditor editor) { this.node = _root; this.index = index; diff -r 5df5505e1c1e -r 98e256d9fd57 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/query/Query.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/query/Query.java Mon Sep 15 14:07:06 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/query/Query.java Mon Sep 15 16:31:53 2014 +0900 @@ -6,7 +6,6 @@ public interface Query { boolean condition(TreeNode _node); - List> indexCondition(); //attribute name ,attribute value }