KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > context > JAXPSerializer


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.faces.context;
35
36 import org.w3c.dom.Document JavaDoc;
37 import org.w3c.dom.Node JavaDoc;
38
39 import javax.xml.transform.OutputKeys JavaDoc;
40 import javax.xml.transform.Result JavaDoc;
41 import javax.xml.transform.Transformer JavaDoc;
42 import javax.xml.transform.TransformerConfigurationException JavaDoc;
43 import javax.xml.transform.TransformerException JavaDoc;
44 import javax.xml.transform.TransformerFactory JavaDoc;
45 import javax.xml.transform.dom.DOMSource JavaDoc;
46 import javax.xml.transform.stream.StreamResult JavaDoc;
47 import javax.xml.transform.stream.StreamSource JavaDoc;
48 import java.io.IOException JavaDoc;
49 import java.io.Writer JavaDoc;
50 import java.util.Properties JavaDoc;
51
52 public class JAXPSerializer implements DOMSerializer {
53     private static final TransformerFactory JavaDoc transformerFactory =
54             TransformerFactory.newInstance();
55     private static Transformer JavaDoc PrettyPrintingTransformer;
56     private static Transformer JavaDoc NormalPrintingTransformer;
57
58     static {
59         try {
60             PrettyPrintingTransformer = transformerFactory
61                     .newTransformer(new StreamSource JavaDoc(
62                             JAXPSerializer.class.getResourceAsStream(
63                                     "pretty-printing.xslt")));
64             NormalPrintingTransformer = transformerFactory
65                     .newTransformer(new StreamSource JavaDoc(
66                             JAXPSerializer.class.getResourceAsStream(
67                                     "normal-printing.xslt")));
68         } catch (TransformerConfigurationException JavaDoc e) {
69             throw new RuntimeException JavaDoc(e);
70         }
71     }
72
73     private Result JavaDoc result;
74     private Properties JavaDoc properties = new Properties JavaDoc();
75     private Transformer JavaDoc transformer = NormalPrintingTransformer;
76
77     public JAXPSerializer(Writer JavaDoc writer) {
78         this.result = new StreamResult JavaDoc(writer);
79     }
80
81     public JAXPSerializer(Writer JavaDoc writer, String JavaDoc publicId, String JavaDoc systemId) {
82         this.result = new StreamResult JavaDoc(writer);
83         properties.setProperty(OutputKeys.DOCTYPE_PUBLIC, publicId);
84         properties.setProperty(OutputKeys.DOCTYPE_SYSTEM, systemId);
85         properties.setProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
86     }
87
88     public void serialize(Document JavaDoc document) throws IOException JavaDoc {
89         try {
90             transformer.setOutputProperties(properties);
91             transformer.transform(new DOMSource JavaDoc(document), result);
92         } catch (TransformerException JavaDoc e) {
93             throw new IOException JavaDoc(e.getMessage());
94         }
95     }
96
97     public void serialize(Node JavaDoc node) throws IOException JavaDoc {
98         try {
99             transformer.setOutputProperties(properties);
100             transformer.transform(new DOMSource JavaDoc(node), result);
101         } catch (TransformerException JavaDoc e) {
102             throw new IOException JavaDoc(e.getMessage());
103         }
104     }
105
106     public void printPretty() {
107         transformer = PrettyPrintingTransformer;
108     }
109
110     public void outputAsHTML() {
111         properties.setProperty(OutputKeys.METHOD, "html");
112     }
113
114     public void outputAsXML() {
115         properties.setProperty(OutputKeys.METHOD, "xml");
116     }
117
118     public void ommitXMLDeclaration() {
119         properties.setProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
120     }
121 }
122
Popular Tags