Mercurial > hg > Members > kazuma > jungle-ormapper
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/DefaultTreeNode.java @ 0:44465893e8b8
first Commit
author | Kazuma |
---|---|
date | Wed, 30 Nov 2016 01:47:55 +0900 |
parents | |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.transaction; import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List; import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNodeChildren; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap; import java.nio.ByteBuffer; import java.rmi.dgc.VMID; public class DefaultTreeNode implements TreeNode { private List<TreeNode> children; private TreeMap<String, ByteBuffer> attrs; final String nodeId = new VMID().toString(); private static final List<TreeNode> NIL_LIST = new List<>(); public DefaultTreeNode() { this(NIL_LIST, new TreeMap<>()); } 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, new TreeMap<>()); Either<jp.ac.u_ryukyu.ie.cr.jungle.util.Error, TreeNode> either = newRootChildren.addNewChildAt(0,this); return either; } @Override public int compareTo(TreeNode o) { return this.hashCode() - o.hashCode(); } }