01: /* Copyright 2002-2004 Elliotte Rusty Harold
02:
03: This library is free software; you can redistribute it and/or modify
04: it under the terms of version 2.1 of the GNU Lesser General Public
05: License as published by the Free Software Foundation.
06:
07: This library is distributed in the hope that it will be useful,
08: but WITHOUT ANY WARRANTY; without even the implied warranty of
09: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10: GNU Lesser General Public License for more details.
11:
12: You should have received a copy of the GNU Lesser General Public
13: License along with this library; if not, write to the
14: Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15: Boston, MA 02111-1307 USA
16:
17: You can contact Elliotte Rusty Harold by sending e-mail to
18: elharo@metalab.unc.edu. Please include the word "XOM" in the
19: subject line. The XOM home page is located at http://www.xom.nu/
20: */
21:
22: package nu.xom.xslt;
23:
24: import javax.xml.transform.sax.SAXSource;
25:
26: import nu.xom.Document;
27: import nu.xom.Nodes;
28:
29: import org.xml.sax.InputSource;
30: import org.xml.sax.XMLReader;
31:
32: /**
33: * @author Elliotte Rusty Harold
34: * @version 1.1b4
35: *
36: */
37: class XOMSource extends SAXSource {
38:
39: private final Nodes source;
40:
41: /**
42: * <p>
43: * Creates a new <code>XOMSource</code> object from a
44: * <code>Document</code>. The <code>Document</code> object
45: * is read but not changed by any method in this class.
46: * </p>
47: *
48: * @param source
49: */
50: XOMSource(Document source) {
51: this .source = new Nodes(source);
52: }
53:
54: /**
55: * <p>
56: * Creates a new <code>XOMSource</code> object
57: * from a <code>Nodes</code>.
58: * </p>
59: *
60: * @param source
61: */
62: public XOMSource(Nodes source) {
63: this .source = source;
64: }
65:
66: public InputSource getInputSource() {
67: return new XOMInputSource(source);
68: }
69:
70: public XMLReader getXMLReader() {
71: return new XOMReader();
72: }
73:
74: public String getSystemId() {
75: if (this .source.size() == 0)
76: return null;
77: else
78: return this .source.get(0).getBaseURI();
79: }
80:
81: }
|