Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNode.java @ 175:e26462a38ce0
add push pop
author | tatsuki |
---|---|
date | Fri, 06 Mar 2015 10:44:50 +0900 |
parents | 809f813d1083 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction; import java.nio.ByteBuffer; import fj.Ord; import fj.data.List; 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.TreeNodeChildren; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; public class DefaultTreeNode implements TreeNode { //private final DefaultNode wrap; private List<TreeNode> children; private TreeMap<String,ByteBuffer> attrs; private static final List<TreeNode> NIL_LIST = List.nil(); private static final TreeMap<String,ByteBuffer> NIL_MAP = TreeMap.empty(Ord.stringOrd); public DefaultTreeNode() { this(NIL_LIST,NIL_MAP); } public DefaultTreeNode(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs) { attrs = _attrs; children = _children; } @Override public DefaultTreeNodeChildren getChildren() { return new DefaultTreeNodeChildren(children, attrs); } @Override public DefaultTreeNodeAttribute getAttributes() { return new DefaultTreeNodeAttribute(children, attrs); } @Override public DefaultTreeNode createNewNode(){ return new DefaultTreeNode(); } public DefaultTreeNode clone() { return new DefaultTreeNode(children,attrs); } @Override public Either<Error, TreeNode> appendRootNode() { TreeNodeChildren newRootChildren = new DefaultTreeNodeChildren(NIL_LIST, NIL_MAP); Either<Error, TreeNode> either = newRootChildren.addExistTreeNodeToChildren(this, 0); return either; } }