view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultAttributes.java @ 12:df42dca47c3e

rename and commit
author Shoshi TAMAKI
date Fri, 14 Dec 2012 21:23:23 +0900
parents src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/AttributesImpl.java@a2c019a77c27
children 3ef2a66a8c5d
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;

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;
	}
}