01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20:
21: package com.sun.xml.txw2.output;
22:
23: import javax.xml.transform.Result;
24: import javax.xml.transform.dom.DOMResult;
25: import javax.xml.transform.sax.SAXResult;
26: import javax.xml.transform.stream.StreamResult;
27:
28: /**
29: * Factory for producing XmlSerializers for various Result types.
30: *
31: * @author Ryan.Shoemaker@Sun.COM
32: */
33: public abstract class ResultFactory {
34:
35: /**
36: * Do not instanciate.
37: */
38: private ResultFactory() {
39: }
40:
41: /**
42: * Factory method for producing {@link XmlSerializer) from {@link javax.xml.transform.Result}.
43: *
44: * This method supports {@link javax.xml.transform.sax.SAXResult},
45: * {@link javax.xml.transform.stream.StreamResult}, and {@link javax.xml.transform.dom.DOMResult}.
46: *
47: * @param result the Result that will receive output from the XmlSerializer
48: * @return an implementation of XmlSerializer that will produce output on the supplied Result
49: */
50: public static XmlSerializer createSerializer(Result result) {
51: if (result instanceof SAXResult)
52: return new SaxSerializer((SAXResult) result);
53: if (result instanceof DOMResult)
54: return new DomSerializer((DOMResult) result);
55: if (result instanceof StreamResult)
56: return new StreamSerializer((StreamResult) result);
57:
58: throw new UnsupportedOperationException(
59: "Unsupported Result type: "
60: + result.getClass().getName());
61: }
62:
63: }
|