01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20:
21: package com.sun.codemodel.fmt;
22:
23: import java.io.IOException;
24: import java.io.ObjectOutputStream;
25: import java.io.OutputStream;
26:
27: import com.sun.codemodel.JResourceFile;
28:
29: /**
30: * A simple class that takes an object and serializes it into a file
31: * in the parent package with the given name.
32: */
33: public class JSerializedObject extends JResourceFile {
34:
35: private final Object obj;
36:
37: /**
38: * @exception IOException
39: * If the serialization fails, this exception is thrown
40: */
41: public JSerializedObject(String name, Object obj)
42: throws IOException {
43: super (name);
44: this .obj = obj;
45: }
46:
47: /**
48: * called by JPackage to serialize the object
49: */
50: protected void build(OutputStream os) throws IOException {
51: // serialize the obj into a ByteArrayOutputStream
52: ObjectOutputStream oos = new ObjectOutputStream(os);
53: oos.writeObject(obj);
54: oos.close();
55: }
56: }
|