1 package io.atlassian.fugue;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.IOException;
6 import java.io.ObjectInputStream;
7 import java.io.ObjectOutputStream;
8
9 class Serializer {
10 static <A> byte[] toBytes(final A a) throws IOException {
11 final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
12 new ObjectOutputStream(bytes).writeObject(a);
13 return bytes.toByteArray();
14 }
15
16 static <A> A toObject(final byte[] bs) throws IOException {
17 final ByteArrayInputStream bytes = new ByteArrayInputStream(bs);
18 try {
19 @SuppressWarnings("unchecked")
20 final A result = (A) new ObjectInputStream(bytes).readObject();
21 return result;
22 } catch (final ClassNotFoundException e) {
23 throw new RuntimeException(e);
24 }
25 }
26
27 static class Unserializable {
28 static Unserializable instance() {
29 return new Unserializable();
30 }
31 }
32 }