Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java @ 112:98e256d9fd57
treeAttribute add get String but has error
author | one |
---|---|
date | Mon, 15 Sep 2014 16:31:53 +0900 |
parents | a1e20a440ddd |
children | 3071b1a471fd |
line wrap: on
line source
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.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 List<TreeNode> children; public TreeMap<String,ByteBuffer> attrs; OperationLog log ; public DefaultTreeNodeAttribute(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs) { children = _children; attrs = _attrs; log = new DefaultOperationLog(); } public DefaultTreeNodeAttribute(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs,OperationLog _log) { children = _children; attrs = _attrs; log = _log; } @Override public TreeMap<String,ByteBuffer> getAttributesAsRawMap(){ return attrs; } @Override public Either<Error,TreeNode> delete(String _key) { if (_key == null) { return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } if (!attrs.contains(_key)) { return DefaultEither.newA(NodeEditorError.DELETE_KEY_NOT_FOUND); } TreeMap<String,ByteBuffer> newMap = attrs.delete(_key); TreeNode newNode = new DefaultTreeNode(children,newMap); return DefaultEither.newB(newNode); } @Override public Either<Error,TreeNode> put(String _key, ByteBuffer _value) { if (_key == null || _value == null) { return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED); } TreeMap<String,ByteBuffer> newMap = attrs.set(_key,_value); TreeNode newNode = new DefaultTreeNode(children,newMap); return DefaultEither.newB(newNode); } @Override public ByteBuffer get(String _key) { if (_key == null) { return null; } Option<ByteBuffer> 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; } }