1 package org.simantics.db.common;
\r
3 import java.io.ByteArrayInputStream;
\r
4 import java.io.ByteArrayOutputStream;
\r
5 import java.io.ObjectInputStream;
\r
6 import java.io.ObjectOutputStream;
\r
7 import java.util.Date;
\r
9 import org.simantics.db.Metadata;
\r
10 import org.simantics.db.Session;
\r
11 import org.simantics.db.common.utils.Logger;
\r
13 public class CommitMetadata implements Metadata {
\r
14 final boolean DEBUG = true;
\r
15 public final long opid;
\r
16 public final Date date;
\r
17 public CommitMetadata(long opid) {
\r
19 this.date = new Date();
\r
21 public CommitMetadata(long opid, Date date) {
\r
26 public byte[] serialise(Session session) {
\r
28 ByteArrayOutputStream os = new ByteArrayOutputStream();
\r
29 ObjectOutputStream oos = new ObjectOutputStream(os);
\r
30 oos.writeLong(opid);
\r
31 oos.writeObject(date);
\r
33 return os.toByteArray();
\r
34 } catch (Exception e) {
\r
35 Logger.defaultLogError(e.toString());
\r
37 e.printStackTrace();
\r
41 public static CommitMetadata deserialise(Session session, byte[] input) {
\r
43 ByteArrayInputStream is = new ByteArrayInputStream(input);
\r
44 ObjectInputStream ois = new ObjectInputStream(is);
\r
45 long opid = ois.readLong();
\r
46 Object date = ois.readObject();
\r
48 if (date instanceof Date)
\r
49 return new CommitMetadata(opid, (Date)date);
\r
50 } catch (Throwable e) {
\r
51 Logger.defaultLogError(e);
\r