package org.prevayler.implementation; import org.prevayler.foundation.Chunk; import java.io.Serializable; import java.util.Date; public class TransactionTimestamp implements Serializable { static final long serialVersionUID=1L; private final Capsule _capsule; private final long _systemVersion; private final long _executionTime; public TransactionTimestamp( Capsule capsule, long systemVersion, Date executionTime){ this(capsule,systemVersion,executionTime.getTime()); } private TransactionTimestamp( Capsule capsule, long systemVersion, long executionTime){ _capsule=capsule; _systemVersion=systemVersion; _executionTime=executionTime; } public Capsule capsule(){ return _capsule; } public long systemVersion(){ return _systemVersion; } public Date executionTime(){ return new Date(_executionTime); } public TransactionTimestamp cleanCopy(){ return new TransactionTimestamp(_capsule.cleanCopy(),_systemVersion,_executionTime); } public Chunk toChunk(){ Chunk chunk=_capsule.toChunk(); chunk.setParameter("systemVersion",String.valueOf(_systemVersion)); chunk.setParameter("executionTime",String.valueOf(_executionTime)); return chunk; } public static TransactionTimestamp fromChunk( Chunk chunk){ Capsule capsule=Capsule.fromChunk(chunk); long systemVersion=Long.parseLong(chunk.getParameter("systemVersion")); long executionTime=Long.parseLong(chunk.getParameter("executionTime")); return new TransactionTimestamp(capsule,systemVersion,executionTime); } }