KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > help > internal > xhtml > UATransformManager


1 /***************************************************************************************************
2  * Copyright (c) 2004, 2006 IBM Corporation and others. All rights reserved. This program and the
3  * accompanying materials are made available under the terms of the Eclipse Public License v1.0
4  * which accompanies this distribution, and is available at
5  * http://www.eclipse.org/legal/epl-v10.html
6  *
7  * Contributors: IBM Corporation - initial API and implementation
8  **************************************************************************************************/

9
10 package org.eclipse.help.internal.xhtml;
11
12 import java.io.ByteArrayInputStream JavaDoc;
13 import java.io.InputStream JavaDoc;
14 import java.io.StringWriter JavaDoc;
15 import java.io.UnsupportedEncodingException JavaDoc;
16
17 import javax.xml.transform.OutputKeys JavaDoc;
18 import javax.xml.transform.Transformer JavaDoc;
19 import javax.xml.transform.TransformerConfigurationException JavaDoc;
20 import javax.xml.transform.TransformerException JavaDoc;
21 import javax.xml.transform.TransformerFactory JavaDoc;
22 import javax.xml.transform.dom.DOMSource JavaDoc;
23 import javax.xml.transform.stream.StreamResult JavaDoc;
24
25 import org.eclipse.help.internal.HelpPlugin;
26 import org.w3c.dom.Document JavaDoc;
27 import org.w3c.dom.DocumentType JavaDoc;
28
29
30 /**
31  * Handles all XSL transforms applied to XHTML UA content.
32  */

33 public class UATransformManager {
34
35
36     private static Transformer JavaDoc createTransformer(Document JavaDoc document) {
37         try {
38             // identity xslt.
39
TransformerFactory JavaDoc tFactory = TransformerFactory.newInstance();
40             Transformer JavaDoc transformer = tFactory.newTransformer();
41
42             // setup properties, for doctype.
43
DocumentType JavaDoc docType = document.getDoctype();
44             if (docType != null) {
45                 String JavaDoc value = docType.getSystemId();
46                 transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, value);
47                 value = document.getDoctype().getPublicId();
48                 transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, value);
49                 transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
50
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); //$NON-NLS-1$
51

52             } else
53                 ;
54
55             return transformer;
56
57         } catch (TransformerConfigurationException JavaDoc tce) {
58             HelpPlugin.logError("Transformer Config error: " + tce.getMessage(), null); //$NON-NLS-1$
59

60             Throwable JavaDoc x = tce;
61             if (tce.getException() != null)
62                 x = tce.getException();
63             HelpPlugin.logError("Transformer Stack trace: ", x); //$NON-NLS-1$
64
}
65         return null;
66     }
67
68     public static String JavaDoc convertToString(Document JavaDoc document) {
69         try {
70             Transformer JavaDoc transformer = createTransformer(document);
71             DOMSource JavaDoc source = new DOMSource JavaDoc(document);
72             StringWriter JavaDoc stringBuffer = new StringWriter JavaDoc();
73             StreamResult JavaDoc result = new StreamResult JavaDoc(stringBuffer);
74
75             transformer.transform(source, result);
76             return stringBuffer.toString();
77
78         } catch (TransformerException JavaDoc te) {
79             HelpPlugin.logError("Transformer error: " + te.getMessage(), te); //$NON-NLS-1$
80
Throwable JavaDoc x = te;
81             if (te.getException() != null)
82                 x = te.getException();
83             HelpPlugin.logError("Transformer Stack trace: ", x); //$NON-NLS-1$
84
}
85         return null;
86
87     }
88
89     public static InputStream JavaDoc getAsInputStream(Document JavaDoc document) {
90         byte[] ba = null;
91         String JavaDoc xhtml = convertToString(document);
92         try {
93             ba = xhtml.getBytes("UTF-8"); //$NON-NLS-1$
94
} catch (UnsupportedEncodingException JavaDoc ue) {
95             ;
96         }
97         ByteArrayInputStream JavaDoc is = new ByteArrayInputStream JavaDoc(ba);
98         return is;
99     }
100
101
102 }
103
Popular Tags