KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ecs > factory > DOMFactory


1 /*
2  * ====================================================================
3  *
4  * The Apache Software License, Version 1.1
5  *
6  * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
7  * reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution, if
22  * any, must include the following acknowlegement:
23  * "This product includes software developed by the
24  * Apache Software Foundation (http://www.apache.org/)."
25  * Alternately, this acknowlegement may appear in the software itself,
26  * if and wherever such third-party acknowlegements normally appear.
27  *
28  * 4. The names "The Jakarta Project", "Jakarta Element Construction Set",
29  * "Jakarta ECS" , and "Apache Software Foundation" must not be used
30  * to endorse or promote products derived
31  * from this software without prior written permission. For written
32  * permission, please contact apache@apache.org.
33  *
34  * 5. Products derived from this software may not be called "Apache",
35  * "Jakarta Element Construction Set" nor "Jakarta ECS" nor may "Apache"
36  * appear in their names without prior written permission of the Apache Group.
37  *
38  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
42  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49  * SUCH DAMAGE.
50  * ====================================================================
51  *
52  * This software consists of voluntary contributions made by many
53  * individuals on behalf of the Apache Software Foundation. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  *
57  */

58 package org.apache.ecs.factory;
59
60 import java.io.StringReader JavaDoc;
61 import java.io.ByteArrayOutputStream JavaDoc;
62 import java.io.OutputStream JavaDoc;
63
64 import org.apache.xerces.parsers.DOMParser;
65 import org.w3c.dom.Document JavaDoc;
66
67 public class DOMFactory
68 {
69     private ByteArrayOutputStream JavaDoc outStream = new ByteArrayOutputStream JavaDoc();
70
71     /**
72       Default Constructor. Here is a simple example on how to use this class.
73       <code>
74       <pre>
75         PI p = new PI();
76         p.setVersion(1.0);
77         XML x = new XML("root",true);
78         XML x1 = new XML("page",true);
79         XML x2 = new XML("paragraph");
80         XML x3 = new XML("paragraph");
81         x2.addElement("This is the first Paragraph");
82         x3.addElement("This is the second Paragraph");
83         x.addElement(x1.addElement(x2).addElement(x3));
84         p.addElement(x);
85         DOMFactory d = new DOMFactory();
86         p.output(d.getOutputStream());
87
88         Document doc = d.createDOM();
89       </pre>
90       </code>
91     */

92     public DOMFactory()
93     {
94     }
95
96     /**
97       Gets the output stream for the ecs element to write to.
98     */

99     public OutputStream JavaDoc getOutputStream()
100     {
101         return outStream;
102     }
103
104     /**
105       Creates a Document from the root element of the XML Stream.
106     */

107     public Document JavaDoc createDOM()
108     {
109         DOMParser parser = null;
110         Document JavaDoc doc = null;
111
112         try
113         {
114             outStream.close(); // before we parse the InputStream make sure the pipe is closed.
115
StringReader JavaDoc reader = new StringReader JavaDoc(outStream.toString());
116             parser = new DOMParser();
117             parser.parse(new org.xml.sax.InputSource JavaDoc(reader));
118             doc = parser.getDocument();
119         }
120         catch(java.io.IOException JavaDoc ioe)
121         {
122             System.err.println(ioe.toString());
123             ioe.printStackTrace();
124         }
125         catch(org.xml.sax.SAXException JavaDoc sax)
126         {
127             System.err.println(sax.toString());
128             sax.printStackTrace();
129         }
130         return doc;
131     }
132 }
133
Popular Tags