view src/treecms/memory/OnMemoryForest.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
line wrap: on
line source

package treecms.memory;

import java.nio.ByteBuffer;
import java.util.Map;
import java.util.Set;
import treecms.api.Forest;
import treecms.api.MonotonicTree;
import treecms.api.MonotonicTreeNode;
import treecms.tree.id.IncrementalIDProvider;
import treecms.tree.id.NodeIDProvider;

public class OnMemoryForest implements Forest
{
	public static void main(String _args[])
	{
		OnMemoryForest f = new OnMemoryForest(new IncrementalIDProvider("test",0));
		MonotonicTree main = f.getMainTree();
		MonotonicTreeNode root = main.getRoot();
		MonotonicTreeNode ch1 = root.create(null);
		MonotonicTreeNode ch11 = ch1.create(null);
		
		ByteBuffer key1 = ByteBuffer.wrap("hoge".getBytes());
		ByteBuffer key2 = ByteBuffer.wrap("fuga".getBytes());
		
		ch11.put(key1, key1);
		ch11.put(key2, key2);
		System.out.println(new String(ch11.get(key1).array()));
		
		Set<ByteBuffer> keys = ch11.getKeySet();
		System.out.println(keys);
		Map<ByteBuffer,ByteBuffer> map = ch11.asMap();
		System.out.println(map);
		
		ch11.clearAttributes();
		System.out.println(ch11.getKeySet());
		System.out.println(ch11.asMap());
		
		print(root);
	}
	
	public static void print(MonotonicTreeNode _t)
	{
		System.out.println(_t.toString());
		for(MonotonicTreeNode n : _t.getList()){
			print(n);
		}
	}
	
	private final OnMemoryMonotonicTree m_tree;
	
	public OnMemoryForest(NodeIDProvider _provider)
	{
		m_tree = OnMemoryMonotonicTree.createInstance(_provider,null);
	}
	
	@Override
	public MonotonicTree getMainTree()
	{
		return m_tree;
	}
}