Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/transaction/node/Default/DefaultTreeNode.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | 20fac8350822 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.Default; import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List; import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNodeChildren; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import java.nio.ByteBuffer; public class DefaultTreeNode implements TreeNode { private List<TreeNode> children; private TreeMap<String, ByteBuffer> attrs; 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<Error, TreeNode> either = newRootChildren.addNewChildAt(0,this); return either; } @Override public int compareTo(TreeNode o) { return this.getHash() - o.getHash(); } @Override public int getHash() { return this.hashCode(); } }