xmlinputfactoryimpl.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 279 行
JAVA
279 行
/** Copyright (c) 1998-2008 Caucho Technology -- all rights reserved** This file is part of Resin(R) Open Source** Each copy or derived work must preserve the copyright notice and this* notice unmodified.** Resin Open Source is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** Resin Open Source is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty* of NON-INFRINGEMENT. See the GNU General Public License for more* details.** You should have received a copy of the GNU General Public License* along with Resin Open Source; if not, write to the** Free Software Foundation, Inc.* 59 Temple Place, Suite 330* Boston, MA 02111-1307 USA** @author Adam Megacz*/package com.caucho.xml.stream;import javax.xml.stream.*;import javax.xml.stream.util.XMLEventAllocator;import javax.xml.transform.Source;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.sax.SAXSource;import javax.xml.transform.stream.StreamSource;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.net.MalformedURLException;import java.net.URL;public class XMLInputFactoryImpl extends XMLInputFactory { private XMLEventAllocator _allocator = new XMLEventAllocatorImpl(); private XMLReporter _reporter; private XMLResolver _resolver; public XMLInputFactoryImpl() { } // // Filtered // public XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter) throws XMLStreamException { return new FilteredEventReader(reader, filter); } public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) throws XMLStreamException { return new FilteredStreamReader(reader, filter); } // // Event reader // public XMLEventReader createXMLEventReader(InputStream stream) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(stream)); } public XMLEventReader createXMLEventReader(InputStream stream, String encoding) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(stream, encoding)); } public XMLEventReader createXMLEventReader(Reader reader) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(reader)); } /** * "Support of this method is optional." */ public XMLEventReader createXMLEventReader(Source source) throws XMLStreamException { if (source instanceof SAXSource) return new SAXSourceXMLEventReaderImpl((SAXSource) source); return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(source)); } public XMLEventReader createXMLEventReader(String systemId, InputStream stream) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(systemId, stream)); } public XMLEventReader createXMLEventReader(String systemId, Reader reader) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), createXMLStreamReader(systemId, reader)); } public XMLEventReader createXMLEventReader(XMLStreamReader reader) throws XMLStreamException { return new XMLEventReaderImpl(getEventAllocator(), reader); } // // Stream reader // public XMLStreamReader createXMLStreamReader(InputStream stream) throws XMLStreamException { return new XMLStreamReaderImpl(stream); } public XMLStreamReader createXMLStreamReader(InputStream stream, String encoding) throws XMLStreamException { if (encoding == null) encoding = "iso-8859-1"; try { InputStreamReader isr = new InputStreamReader(stream, encoding); return new XMLStreamReaderImpl(isr); } catch (IOException e) { throw new XMLStreamException(e); } } public XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException { return new XMLStreamReaderImpl(reader); } /** * "Support of this method is optional." */ public XMLStreamReader createXMLStreamReader(Source source) throws XMLStreamException { if (source instanceof StreamSource) { StreamSource streamSource = (StreamSource) source; InputStream is = streamSource.getInputStream(); if (is != null) return new XMLStreamReaderImpl(is); Reader r = streamSource.getReader(); if (r != null) return new XMLStreamReaderImpl(r); if (streamSource.getSystemId() != null) { try { URL url = new URL(streamSource.getSystemId()); return new XMLStreamReaderImpl(url.openStream()); } catch (MalformedURLException e) { throw new XMLStreamException(e); } catch (IOException e) { throw new XMLStreamException(e); } } else throw new XMLStreamException("StreamSource contains no stream information"); } else if (source instanceof DOMSource) return new DOMSourceXMLStreamReaderImpl((DOMSource) source); else if (source instanceof SAXSource) throw new JAXPNotSupportedInStAXException(); throw new JAXPNotSupportedInStAXException(); } public XMLStreamReader createXMLStreamReader(String systemId, InputStream stream) throws XMLStreamException { return new XMLStreamReaderImpl(stream, systemId); } public XMLStreamReader createXMLStreamReader(String systemId, Reader reader) throws XMLStreamException { return new XMLStreamReaderImpl(reader, systemId); } public XMLEventAllocator getEventAllocator() { return _allocator; } public Object getProperty(String name) throws IllegalArgumentException { throw new IllegalArgumentException("property \""+name+"\" not supported"); } public XMLReporter getXMLReporter() { return _reporter; } public XMLResolver getXMLResolver() { return _resolver; } public boolean isPropertySupported(String name) { return false; } public void setEventAllocator(XMLEventAllocator allocator) { _allocator = allocator; } public void setProperty(String name, Object value) throws IllegalArgumentException { if ("javax.xml.stream.allocator".equals(name)) { setEventAllocator((XMLEventAllocator)value); return; } else if ("javax.xml.stream.isNamespaceAware".equals(name)) { // XXX? return; } throw new IllegalArgumentException("property \""+name+"\" not supported"); } public void setXMLReporter(XMLReporter reporter) { _reporter = reporter; } public void setXMLResolver(XMLResolver resolver) { _resolver = resolver; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?