KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > parser > dom > JAXPSAXDOMDriver


1 /*
2  * Japex ver. 0.1 software ("Software")
3  *
4  * Copyright, 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
5  *
6  * This Software is distributed under the following terms:
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, is permitted provided that the following conditions are met:
10  *
11  * Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the following disclaimer.
13  *
14  * Redistribution in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the
16  * documentation and/or other materials provided with the distribution.
17  *
18  * Neither the name of Sun Microsystems, Inc., 'Java', 'Java'-based names,
19  * nor the names of contributors may be used to endorse or promote products
20  * derived from this Software without specific prior written permission.
21  *
22  * The Software is provided "AS IS," without a warranty of any kind. ALL
23  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
24  * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25  * PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS
26  * SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE
27  * AS A RESULT OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE
28  * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE
29  * LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
30  * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED
31  * AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
32  * INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGES.
34  *
35  * You acknowledge that the Software is not designed, licensed or intended
36  * for use in the design, construction, operation or maintenance of any
37  * nuclear facility.
38  */

39
40 package parser.dom;
41 import java.io.File JavaDoc;
42 import java.io.ByteArrayInputStream JavaDoc;
43 import java.io.ByteArrayOutputStream JavaDoc;
44 import java.io.FileInputStream JavaDoc;
45 import java.io.IOException JavaDoc;
46
47 import javax.xml.parsers.SAXParserFactory JavaDoc;
48 import javax.xml.parsers.SAXParser JavaDoc;
49 import org.xml.sax.InputSource JavaDoc;
50
51
52 import javax.xml.stream.XMLOutputFactory;
53 import javax.xml.transform.Transformer JavaDoc;
54 import javax.xml.transform.TransformerFactory JavaDoc;
55 import javax.xml.transform.dom.DOMResult JavaDoc;
56 import javax.xml.transform.sax.SAXSource JavaDoc;
57
58 import org.w3c.dom.Document JavaDoc;
59 import com.sun.japex.*;
60
61
62 public class JAXPSAXDOMDriver extends JapexDriverBase {
63     ByteArrayInputStream JavaDoc _inputStream;
64
65     Transformer JavaDoc _transformer;
66     SAXSource JavaDoc _source;
67     
68     /** Creates a new instance of JAXPDriver */
69     public JAXPSAXDOMDriver() {
70     }
71
72     public void initializeDriver() {
73         try {
74             _transformer = TransformerFactory.newInstance().newTransformer();
75         } catch (Exception JavaDoc e) {
76             e.printStackTrace();
77         }
78     }
79
80     public void prepare(TestCase testCase) {
81         String JavaDoc xmlFile = testCase.getParam("xmlfile");
82         if (xmlFile == null) {
83             throw new RuntimeException JavaDoc("xmlfile not specified");
84         }
85         
86         // Load file into byte array to factor out IO
87
try {
88             // TODO must use URL here
89
FileInputStream JavaDoc fis = new FileInputStream JavaDoc(new File JavaDoc(xmlFile));
90             byte[] xmlFileByteArray = com.sun.japex.Util.streamToByteArray(fis);
91             _inputStream = new ByteArrayInputStream JavaDoc(xmlFileByteArray);
92             fis.close();
93             
94             _source = new SAXSource JavaDoc(new InputSource JavaDoc(_inputStream));
95         }
96         catch (IOException JavaDoc e) {
97             e.printStackTrace();
98         }
99
100     }
101
102     public void warmup(TestCase testCase) {
103         try {
104             DOMResult JavaDoc result = new DOMResult JavaDoc();
105             _inputStream.reset();
106             _transformer.transform(_source, result);
107         }
108         catch (Exception JavaDoc e) {
109             e.printStackTrace();
110         }
111     }
112     
113     public void run(TestCase testCase) {
114         try {
115             DOMResult JavaDoc result = new DOMResult JavaDoc();
116             _inputStream.reset();
117             _transformer.transform(_source, result);
118         }
119         catch (Exception JavaDoc e) {
120             e.printStackTrace();
121         }
122     }
123     
124     public void finish(TestCase testCase) {
125     }
126     
127     public void terminateDriver() {
128     }
129 }
130
Popular Tags