Mercurial > hg > Members > shoshi > TreeCMSv2
diff src/treecms/memory/OnMemoryTree.java @ 3:5fa718b63cd5
finished treecms.memory basic implementation ( not tested yet. )
author | shoshi |
---|---|
date | Fri, 18 Feb 2011 02:14:10 +0900 |
parents | 4a5ee88f02cf |
children | f5ed85be5640 |
line wrap: on
line diff
--- a/src/treecms/memory/OnMemoryTree.java Wed Feb 16 21:08:32 2011 +0900 +++ b/src/treecms/memory/OnMemoryTree.java Fri Feb 18 02:14:10 2011 +0900 @@ -1,21 +1,30 @@ package treecms.memory; import java.util.LinkedList; +import java.util.concurrent.ConcurrentHashMap; + import treecms.api.Forest; import treecms.api.Node; import treecms.api.NodeData; import treecms.api.NodeID; import treecms.api.Tree; +import treecms.tree.util.PreorderTreewalker; public class OnMemoryTree implements Tree { OnMemoryNode m_root; OnMemoryForest m_forest; + ConcurrentHashMap<String,OnMemoryNode> m_table; public OnMemoryTree(OnMemoryNode _newRoot,OnMemoryForest _forest) { m_root = _newRoot; m_forest = _forest; + + m_table = new ConcurrentHashMap<String,OnMemoryNode>(); + for(Node elem : new PreorderTreewalker(m_root)){ + m_table.put(elem.getID().getUUID(),(OnMemoryNode)elem); + } } @Override @@ -45,7 +54,7 @@ @Override public Node getNodeByUUID(String _uuid) { - return null; + return m_table.get(_uuid); } @Override @@ -74,6 +83,8 @@ clone.m_data.add(_target.m_data.list()); clone.m_data.set(_target.m_data.get()); } + + m_table.put(clone.getID().getUUID(),clone); return clone; } @@ -101,4 +112,10 @@ return null; //not found. } + @Override + public Node getRoot() + { + return m_root; + } + }