view src/treecms/proto/cassandra/v1/CassDecNodeID.java @ 51:d4709911e0ed

moved old Cassandra Monotonic-Tree implementation from "cassandra" to "cassandra.v1"
author shoshi
date Fri, 11 Feb 2011 15:07:57 +0900
parents src/treecms/proto/cassandra/CassDecNodeID.java@a72718a0bccf
children
line wrap: on
line source

package treecms.proto.cassandra.v1;

import java.util.UUID;
import treecms.proto.api.NodeID;
import treecms.proto.id.DecrementalNodeID;

public class CassDecNodeID extends DecrementalNodeID
{
	private String m_uuid;
	private long m_version;
	
	private CassBrowser m_cassandra;
	
	public CassDecNodeID(CassBrowser _browser)
	{
		m_uuid = UUID.randomUUID().toString();
		m_version = START_VALUE;
		m_cassandra = _browser;
	}
	
	public CassDecNodeID(CassBrowser _browser,String _uuid,long _version)
	{
		m_cassandra = _browser;
		m_uuid = _uuid;
		m_version = _version;
	}

	@Override
	public NodeID create()
	{
		return new CassDecNodeID(m_cassandra);
	}

	@Override
	public NodeID getTip()
	{
		NodeID tip = m_cassandra.getTipIDFromUUID(m_uuid);
		if(tip == null){
			return this;
		}
		return tip;
	}

	@Override
	public String getUUID()
	{
		return m_uuid;
	}

	@Override
	public String getVersion()
	{
		return Long.toString(m_version);
	}

	@Override
	public NodeID update()
	{
		return new CassDecNodeID(m_cassandra,m_uuid,m_version - 1);
	}
}