View Javadoc

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  }