Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/memory/OnMemoryMonotonicTree.java @ 26:9cb971a68cc5
added CachedForest.java
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 18 Jul 2011 20:22:53 +0900 |
parents | c1e7ec6b3d44 |
children | aecc55e87143 |
line wrap: on
line source
package treecms.memory; import treecms.api.MonotonicTree; import treecms.api.MonotonicTreeNode; import treecms.api.Node; import treecms.tree.id.NodeIDProvider; public class OnMemoryMonotonicTree implements MonotonicTree { private final OnMemoryMonotonicTree m_tree; private volatile OnMemoryMonotonicTreeNode m_root; private OnMemoryMonotonicTree(NodeIDProvider _provider,OnMemoryMonotonicTree _tree) { m_tree = _tree; m_root = new OnMemoryMonotonicTreeNode(new OnMemoryNode(_provider.create(),null),null); } public static OnMemoryMonotonicTree createInstance(NodeIDProvider _provider,OnMemoryMonotonicTree _tree) { OnMemoryMonotonicTree tree = new OnMemoryMonotonicTree(_provider,_tree); return tree; } public OnMemoryNode get(String _fid) { return (OnMemoryNode)search(_fid,m_root.getNode()); } private Node search(String _fid,Node _node) { if(_node.getID().getFamilyID().equals(_fid)){ return _node; } for(Node child : _node.getList()){ Node ret = search(_fid,child); if(ret != null){ return ret; } } return null; } @Override public boolean commit(boolean _force) { if(m_tree == null){ return true; } return true; } @Override public boolean pull() { return true; } @Override public boolean check() { if(m_tree != null){ } return m_tree.getRoot().getNode().equals(m_root.getNode()); } @Override public void merge() { } @Override public MonotonicTreeNode getRoot() { return m_root; } }