1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.collections15.set;
17
18 import java.io.IOException;
19 import java.io.ObjectInputStream;
20 import java.io.ObjectOutputStream;
21 import java.io.Serializable;
22 import java.util.Collection;
23 import java.util.Set;
24
25 /***
26 * Serializable subclass of AbstractSetDecorator.
27 *
28 * @author Stephen Colebourne
29 * @since Commons Collections 3.1
30 */
31 public abstract class AbstractSerializableSetDecorator<E>
32 extends AbstractSetDecorator<E>
33 implements Serializable {
34
35
36 /*** Serialization version */
37 private static final long serialVersionUID = 3257845480766845232L;
38
39 /***
40 * Constructor.
41 */
42 protected AbstractSerializableSetDecorator(Set<E> set) {
43 super(set);
44 }
45
46
47 /***
48 * Write the set out using a custom routine.
49 *
50 * @param out the output stream
51 * @throws IOException
52 */
53 private void writeObject(ObjectOutputStream out) throws IOException {
54 out.defaultWriteObject();
55 out.writeObject(collection);
56 }
57
58 /***
59 * Read the set in using a custom routine.
60 *
61 * @param in the input stream
62 * @throws IOException
63 * @throws ClassNotFoundException
64 */
65 private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
66 in.defaultReadObject();
67 collection = (Collection<E>) in.readObject();
68 }
69
70 }