view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java @ 23:3ef2a66a8c5d

commit
author Shoshi TAMAKI
date Thu, 10 Jan 2013 23:22:42 +0900
parents df42dca47c3e
children ec033569ab8f
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl;

import java.nio.ByteBuffer;

import fj.Ord;
import fj.data.Option;
import fj.data.TreeMap;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Attributes;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableAttributes;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;

public class DefaultAttributes implements Attributes
{
	private final TreeMap<String,ByteBuffer> attrs;
	private static final TreeMap<String,ByteBuffer> EMPTY = TreeMap.empty(Ord.stringOrd);
	
	public DefaultAttributes()
	{
		this(EMPTY);
	}
	
	private DefaultAttributes(TreeMap<String,ByteBuffer> _attrs)
	{
		attrs = _attrs;
	}
	
	public DefaultAttributes remove(String _key)
	{
		return new DefaultAttributes(attrs.delete(_key));
	}
	
	public DefaultAttributes put(String _key,ByteBuffer _value)
	{
		return new DefaultAttributes(attrs.set(_key,_value));
	}

	@Override
	public ByteBuffer get(String _key)
	{
		Option<ByteBuffer> result = attrs.get(_key);
		return result.isSome() ? result.some() : null;
	}

}