//Prevayler(TM) - The Free-Software Prevalence Layer. //Copyright (C) 2001-2003 Klaus Wuestefeld //This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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); } }