01: /*
02: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05:
06: package com.sun.portal.search.soif;
07:
08: import java.util.*;
09: import java.io.*;
10:
11: /**
12: * SOIFOutputStream class. Writes serialized SOIF objects to an output stream.
13: */
14: public class SOIFOutputStream extends DataOutputStream {
15:
16: Set allowed;
17: String encoding = SOIF.defaultEncoding;
18:
19: /** Creates a new SOIFOutputStream */
20: public SOIFOutputStream(OutputStream os) {
21: super (os);
22: }
23:
24: /**
25: * Creates a new SOIFOutputStream
26: * @param os the underlying output stream to write SOIF to
27: * @param encoding the character encoding of the output SOIF
28: */
29: public SOIFOutputStream(OutputStream os, String encoding) {
30: this (os);
31: if (encoding != null && encoding.equalsIgnoreCase("UTF-16"))
32: encoding = "UTF-16BE";
33: this .encoding = encoding;
34: }
35:
36: /**
37: * Creates a new file based SOIFOutputStream using the default character encoding (UTF-8)
38: * @param filename the file to write SOIF objects to
39: */
40: public SOIFOutputStream(String filename)
41: throws FileNotFoundException {
42: super (new DataOutputStream(new BufferedOutputStream(
43: new FileOutputStream(filename))));
44: }
45:
46: /**
47: * Creates a new file based SOIFOutputStream
48: * @param filename the file to write SOIF objects to
49: * @param encoding the character encoding of the output SOIF
50: */
51: public SOIFOutputStream(String filename, String encoding)
52: throws FileNotFoundException {
53: this (filename);
54: if (encoding != null && encoding.equalsIgnoreCase("UTF-16"))
55: encoding = "UTF-16BE";
56: this .encoding = encoding;
57: }
58:
59: /**
60: * Sets the allowed attributes on oouput. Only attributes in the
61: * allowed set will be written out.
62: * @param allowed a restricted attribute set for the conversion (use lower case)
63: */
64: public void setAllowed(Set allowed) {
65: this .allowed = allowed;
66: }
67:
68: /**
69: * Writes a SOIF object to this output stream.
70: * @param s the SOIF to be written
71: */
72: public void write(SOIF s) throws IOException {
73: write(s.toByteArray(encoding, allowed));
74: }
75:
76: /**
77: * Writes a SOIF to this output stream including only the allowed attributes.
78: * @param allowed a restricted attribute set for the conversion (use lower case)
79: */
80: public void write(SOIF s, Set allowed) throws IOException {
81: write(s.toByteArray(encoding, allowed));
82: }
83:
84: }
|