| /* |
| * reserved comment block |
| * DO NOT REMOVE OR ALTER! |
| */ |
| /* |
| * Copyright 2000-2002,2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.sun.org.apache.xerces.internal.xni.parser; |
| |
| import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier; |
| import java.io.InputStream; |
| import java.io.Reader; |
| import org.xml.sax.InputSource; |
| |
| /** |
| * This class represents an input source for an XML document. The |
| * basic properties of an input source are the following: |
| * <ul> |
| * <li>public identifier</li> |
| * <li>system identifier</li> |
| * <li>byte stream or character stream</li> |
| * <li> |
| * </ul> |
| * |
| * @author Andy Clark, IBM |
| * |
| */ |
| public class XMLInputSource { |
| |
| // |
| // Data |
| // |
| |
| /** Public identifier. */ |
| protected String fPublicId; |
| |
| /** System identifier. */ |
| protected String fSystemId; |
| |
| /** Base system identifier. */ |
| protected String fBaseSystemId; |
| |
| /** Byte stream. */ |
| protected InputStream fByteStream; |
| |
| /** Character stream. */ |
| protected Reader fCharStream; |
| |
| /** Encoding. */ |
| protected String fEncoding; |
| |
| //indicates whether the source is created by a resolver |
| boolean fIsCreatedByResolver = false; |
| // |
| // Constructors |
| // |
| |
| /** |
| * Constructs an input source from just the public and system |
| * identifiers, leaving resolution of the entity and opening of |
| * the input stream up to the caller. |
| * |
| * @param publicId The public identifier, if known. |
| * @param systemId The system identifier. This value should |
| * always be set, if possible, and can be |
| * relative or absolute. If the system identifier |
| * is relative, then the base system identifier |
| * should be set. |
| * @param baseSystemId The base system identifier. This value should |
| * always be set to the fully expanded URI of the |
| * base system identifier, if possible. |
| * @param isCreatedByResolver a flag to indicate whether the source is |
| * created by a resolver |
| */ |
| public XMLInputSource(String publicId, String systemId, |
| String baseSystemId, boolean isCreatedByResolver) { |
| fPublicId = publicId; |
| fSystemId = systemId; |
| fBaseSystemId = baseSystemId; |
| fIsCreatedByResolver = isCreatedByResolver; |
| } // <init>(String,String,String) |
| |
| /** |
| * Constructs an input source from a XMLResourceIdentifier |
| * object, leaving resolution of the entity and opening of |
| * the input stream up to the caller. |
| * |
| * @param resourceIdentifier the XMLResourceIdentifier containing the information |
| */ |
| public XMLInputSource(XMLResourceIdentifier resourceIdentifier) { |
| |
| fPublicId = resourceIdentifier.getPublicId(); |
| fSystemId = resourceIdentifier.getLiteralSystemId(); |
| fBaseSystemId = resourceIdentifier.getBaseSystemId(); |
| } // <init>(XMLResourceIdentifier) |
| |
| /** |
| * Constructs an input source from a SAX InputSource |
| * object. |
| * |
| * @param inputSource a SAX InputSource |
| * @param isCreatedByResolver a flag to indicate whether the source is |
| * created by a resolver |
| */ |
| public XMLInputSource(InputSource inputSource, boolean isCreatedByResolver) { |
| fPublicId = inputSource.getPublicId(); |
| fSystemId = inputSource.getSystemId(); |
| fByteStream = inputSource.getByteStream(); |
| fCharStream = inputSource.getCharacterStream(); |
| fEncoding = inputSource.getEncoding(); |
| fIsCreatedByResolver = isCreatedByResolver; |
| } |
| |
| /** |
| * Constructs an input source from a byte stream. |
| * |
| * @param publicId The public identifier, if known. |
| * @param systemId The system identifier. This value should |
| * always be set, if possible, and can be |
| * relative or absolute. If the system identifier |
| * is relative, then the base system identifier |
| * should be set. |
| * @param baseSystemId The base system identifier. This value should |
| * always be set to the fully expanded URI of the |
| * base system identifier, if possible. |
| * @param byteStream The byte stream. |
| * @param encoding The encoding of the byte stream, if known. |
| */ |
| public XMLInputSource(String publicId, String systemId, |
| String baseSystemId, InputStream byteStream, |
| String encoding) { |
| fPublicId = publicId; |
| fSystemId = systemId; |
| fBaseSystemId = baseSystemId; |
| fByteStream = byteStream; |
| fEncoding = encoding; |
| } // <init>(String,String,String,InputStream,String) |
| |
| /** |
| * Constructs an input source from a character stream. |
| * |
| * @param publicId The public identifier, if known. |
| * @param systemId The system identifier. This value should |
| * always be set, if possible, and can be |
| * relative or absolute. If the system identifier |
| * is relative, then the base system identifier |
| * should be set. |
| * @param baseSystemId The base system identifier. This value should |
| * always be set to the fully expanded URI of the |
| * base system identifier, if possible. |
| * @param charStream The character stream. |
| * @param encoding The original encoding of the byte stream |
| * used by the reader, if known. |
| */ |
| public XMLInputSource(String publicId, String systemId, |
| String baseSystemId, Reader charStream, |
| String encoding) { |
| fPublicId = publicId; |
| fSystemId = systemId; |
| fBaseSystemId = baseSystemId; |
| fCharStream = charStream; |
| fEncoding = encoding; |
| } // <init>(String,String,String,Reader,String) |
| |
| // |
| // Public methods |
| // |
| |
| /** |
| * Sets the public identifier. |
| * |
| * @param publicId The new public identifier. |
| */ |
| public void setPublicId(String publicId) { |
| fPublicId = publicId; |
| } // setPublicId(String) |
| |
| /** Returns the public identifier. */ |
| public String getPublicId() { |
| return fPublicId; |
| } // getPublicId():String |
| |
| /** |
| * Sets the system identifier. |
| * |
| * @param systemId The new system identifier. |
| */ |
| public void setSystemId(String systemId) { |
| fSystemId = systemId; |
| } // setSystemId(String) |
| |
| /** Returns the system identifier. */ |
| public String getSystemId() { |
| return fSystemId; |
| } // getSystemId():String |
| |
| /** |
| * Sets the base system identifier. |
| * |
| * @param baseSystemId The new base system identifier. |
| */ |
| public void setBaseSystemId(String baseSystemId) { |
| fBaseSystemId = baseSystemId; |
| } // setBaseSystemId(String) |
| |
| /** Returns the base system identifier. */ |
| public String getBaseSystemId() { |
| return fBaseSystemId; |
| } // getBaseSystemId():String |
| |
| /** |
| * Sets the byte stream. If the byte stream is not already opened |
| * when this object is instantiated, then the code that opens the |
| * stream should also set the byte stream on this object. Also, if |
| * the encoding is auto-detected, then the encoding should also be |
| * set on this object. |
| * |
| * @param byteStream The new byte stream. |
| */ |
| public void setByteStream(InputStream byteStream) { |
| fByteStream = byteStream; |
| } // setByteStream(InputSource) |
| |
| /** Returns the byte stream. */ |
| public InputStream getByteStream() { |
| return fByteStream; |
| } // getByteStream():InputStream |
| |
| /** |
| * Sets the character stream. If the character stream is not already |
| * opened when this object is instantiated, then the code that opens |
| * the stream should also set the character stream on this object. |
| * Also, the encoding of the byte stream used by the reader should |
| * also be set on this object, if known. |
| * |
| * @param charStream The new character stream. |
| * |
| * @see #setEncoding |
| */ |
| public void setCharacterStream(Reader charStream) { |
| fCharStream = charStream; |
| } // setCharacterStream(Reader) |
| |
| /** Returns the character stream. */ |
| public Reader getCharacterStream() { |
| return fCharStream; |
| } // getCharacterStream():Reader |
| |
| /** |
| * Sets the encoding of the stream. |
| * |
| * @param encoding The new encoding. |
| */ |
| public void setEncoding(String encoding) { |
| fEncoding = encoding; |
| } // setEncoding(String) |
| |
| /** Returns the encoding of the stream, or null if not known. */ |
| public String getEncoding() { |
| return fEncoding; |
| } // getEncoding():String |
| |
| /** |
| * Sets the flag to indicate whether this source is created by a resolver |
| * @param createdByResolver the flag |
| */ |
| public void setCreatedByResolver(boolean createdByResolver) { |
| fIsCreatedByResolver = createdByResolver; |
| } |
| /** |
| * Returns a boolean to indicate whether this source is created by a resolver. |
| * @return true if the source is created by a resolver, false otherwise |
| */ |
| public boolean isCreatedByResolver() { |
| return fIsCreatedByResolver; |
| } |
| |
| } // class XMLInputSource |