Mercurial > hg > Members > shoshi > TreeCMS > TreeCMSPrototype1
view src/treecms/proto/simple/SimpleDecNodeID.java @ 47:5b36891db5ca
finished implementing cassandra monotonic tree
author | suika6039 |
---|---|
date | Sat, 29 Jan 2011 03:05:20 +0900 |
parents | 347feeca4728 |
children |
line wrap: on
line source
package treecms.proto.simple; import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; import treecms.proto.api.NodeID; import treecms.proto.id.DecrementalNodeID; public class SimpleDecNodeID extends DecrementalNodeID { private String m_uuid; private AtomicLong m_tip; private long m_version; public SimpleDecNodeID() { m_uuid = UUID.randomUUID().toString(); m_tip = new AtomicLong(); m_tip.set(START_VALUE); m_version = START_VALUE; } private SimpleDecNodeID(String _uuid,AtomicLong _tip,boolean _doUpdate) { m_uuid = _uuid; m_tip = _tip; if(_doUpdate){ m_version = m_tip.decrementAndGet(); return; } m_version = m_tip.get(); } @Override public NodeID create() { return new SimpleDecNodeID(); } @Override public NodeID getTip() { return new SimpleDecNodeID(m_uuid,m_tip,false); } @Override public String getUUID() { return m_uuid; } @Override public String getVersion() { return Long.toString(m_version); } @Override public NodeID update() { return new SimpleDecNodeID(m_uuid,m_tip,true); } }