001: /*
002: * Copyright 2006 the original author or authors.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.springframework.xml.sax;
018:
019: import org.xml.sax.ContentHandler;
020: import org.xml.sax.DTDHandler;
021: import org.xml.sax.EntityResolver;
022: import org.xml.sax.ErrorHandler;
023: import org.xml.sax.SAXNotRecognizedException;
024: import org.xml.sax.XMLReader;
025: import org.xml.sax.ext.LexicalHandler;
026:
027: /**
028: * Abstract base class for SAX <code>XMLReader</code> implementations. Contains properties as defined in {@link
029: * XMLReader}, and does not recognize any features
030: *
031: * @author Arjen Poutsma
032: * @see #setContentHandler(org.xml.sax.ContentHandler)
033: * @see #setDTDHandler(org.xml.sax.DTDHandler)
034: * @see #setEntityResolver(org.xml.sax.EntityResolver)
035: * @see #setErrorHandler(org.xml.sax.ErrorHandler)
036: * @since 1.0.0
037: */
038: public abstract class AbstractXmlReader implements XMLReader {
039:
040: private DTDHandler dtdHandler;
041:
042: private ContentHandler contentHandler;
043:
044: private EntityResolver entityResolver;
045:
046: private ErrorHandler errorHandler;
047:
048: private LexicalHandler lexicalHandler;
049:
050: public ContentHandler getContentHandler() {
051: return contentHandler;
052: }
053:
054: public void setContentHandler(ContentHandler contentHandler) {
055: this .contentHandler = contentHandler;
056: }
057:
058: public void setDTDHandler(DTDHandler dtdHandler) {
059: this .dtdHandler = dtdHandler;
060: }
061:
062: public DTDHandler getDTDHandler() {
063: return dtdHandler;
064: }
065:
066: public EntityResolver getEntityResolver() {
067: return entityResolver;
068: }
069:
070: public void setEntityResolver(EntityResolver entityResolver) {
071: this .entityResolver = entityResolver;
072: }
073:
074: public ErrorHandler getErrorHandler() {
075: return errorHandler;
076: }
077:
078: public void setErrorHandler(ErrorHandler errorHandler) {
079: this .errorHandler = errorHandler;
080: }
081:
082: public LexicalHandler getLexicalHandler() {
083: return lexicalHandler;
084: }
085:
086: public void setLexicalHandler(LexicalHandler lexicalHandler) {
087: this .lexicalHandler = lexicalHandler;
088: }
089:
090: /**
091: * Throws a <code>SAXNotRecognizedException</code> exception.
092: *
093: * @throws org.xml.sax.SAXNotRecognizedException
094: * always
095: */
096: public boolean getFeature(String name)
097: throws SAXNotRecognizedException {
098: throw new SAXNotRecognizedException(name);
099: }
100:
101: /**
102: * Throws a <code>SAXNotRecognizedException</code> exception.
103: *
104: * @throws SAXNotRecognizedException always
105: */
106: public void setFeature(String name, boolean value)
107: throws SAXNotRecognizedException {
108: throw new SAXNotRecognizedException(name);
109: }
110:
111: /**
112: * Throws a <code>SAXNotRecognizedException</code> exception when the given property does not signify a lexical
113: * handler. The property name for a lexical handler is <code>http://xml.org/sax/properties/lexical-handler</code>.
114: */
115: public Object getProperty(String name)
116: throws SAXNotRecognizedException {
117: if ("http://xml.org/sax/properties/lexical-handler"
118: .equals(name)) {
119: return lexicalHandler;
120: } else {
121: throw new SAXNotRecognizedException(name);
122: }
123: }
124:
125: /**
126: * Throws a <code>SAXNotRecognizedException</code> exception when the given property does not signify a lexical
127: * handler. The property name for a lexical handler is <code>http://xml.org/sax/properties/lexical-handler</code>.
128: */
129: public void setProperty(String name, Object value)
130: throws SAXNotRecognizedException {
131: if ("http://xml.org/sax/properties/lexical-handler"
132: .equals(name)) {
133: lexicalHandler = (LexicalHandler) value;
134: } else {
135: throw new SAXNotRecognizedException(name);
136: }
137: }
138: }
|