package br.ufes.inf.lprm.situation; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class CastSnapshot implements Serializable { private static final long serialVersionUID = 6510062738888443595L; private long timestamp; private byte[] serializedCast; public CastSnapshot(SituationCast cast, long timestamp) throws IOException { this.timestamp = timestamp; ByteArrayOutputStream baOutput = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(baOutput); out.writeObject(cast); serializedCast = baOutput.toByteArray(); } public long getTimestamp() { return timestamp; } public byte[] getSerializedCast() { return serializedCast; } public SituationCast getSituationCast(ClassLoader classLoader) throws IOException, ClassNotFoundException { ByteArrayInputStream baInput = new ByteArrayInputStream(serializedCast); ObjectInputStream in = new CustomObjectInputStream(baInput, classLoader); return (SituationCast) in.readObject( ); } }