Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/memory/OnMemoryMonotonicTree.java @ 22:fa784faafc78
commit
author | shoshi |
---|---|
date | Tue, 07 Jun 2011 16:42:49 +0900 |
parents | f3150b37f9be |
children | 77a894c0b919 |
line wrap: on
line source
package treecms.memory; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import treecms.api.MonotonicTree; import treecms.api.MonotonicTreeNode; import treecms.api.Node; import treecms.api.NodeID; import treecms.merger.Merger; import treecms.merger.ReplaceMerger; import treecms.tree.util.NodeData; public class OnMemoryMonotonicTree implements MonotonicTree { private final ConcurrentMap<String,OnMemoryNode> m_members; private final OnMemoryMonotonicTree m_tree; private OnMemoryMonotonicTreeNode m_root; private OnMemoryMonotonicTree(OnMemoryNode _root,OnMemoryMonotonicTree _tree) { m_members = new ConcurrentHashMap<String,OnMemoryNode>(); m_members.put(_root.getID().getFamilyID(),_root); m_tree = _tree; } public static OnMemoryMonotonicTree createInstance(OnMemoryNode _root,OnMemoryMonotonicTree _tree) { OnMemoryMonotonicTree tree = new OnMemoryMonotonicTree(_root,_tree); tree.m_root = new OnMemoryMonotonicTreeNode(_root.getID().getFamilyID(),null,tree); return tree; } public OnMemoryNode get(String _fid) { return m_members.get(_fid); } public OnMemoryNode createNode(NodeID _id,NodeData<Node> _data) { OnMemoryNode newNode = new OnMemoryNode(_id,_data); m_members.put(_id.getFamilyID(),newNode); return newNode; } @Override public boolean commit(boolean _force) { if(m_tree == null){ return true; } return true; } @Override public boolean pull() { return true; } @Override public boolean check() { return m_tree.getRoot().getNode().equals(m_root.getNode()); } @Override public void merge() { } @Override public MonotonicTreeNode getRoot() { return m_root; } }