java/alt2xml-lib-input/src/cz/frantovo/alt2xml/in/Alt2ContentHandler.java
author František Kučera <franta-hg@frantovo.cz>
Thu, 24 Oct 2019 21:56:03 +0200
changeset 111 e4900596abdb
parent 78 afcb4ccc6594
permissions -rw-r--r--
fix license version: GNU GPLv3
franta-hg@75
     1
/**
franta-hg@75
     2
 * Alt2XML
franta-hg@75
     3
 * Copyright © 2014 František Kučera (frantovo.cz)
franta-hg@75
     4
 *
franta-hg@75
     5
 * This program is free software: you can redistribute it and/or modify
franta-hg@75
     6
 * it under the terms of the GNU General Public License as published by
franta-hg@111
     7
 * the Free Software Foundation, version 3 of the License.
franta-hg@75
     8
 *
franta-hg@75
     9
 * This program is distributed in the hope that it will be useful,
franta-hg@75
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@75
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@75
    12
 * GNU General Public License for more details.
franta-hg@75
    13
 *
franta-hg@75
    14
 * You should have received a copy of the GNU General Public License
franta-hg@75
    15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
franta-hg@75
    16
 */
franta-hg@75
    17
package cz.frantovo.alt2xml.in;
franta-hg@75
    18
franta-hg@75
    19
import org.xml.sax.Attributes;
franta-hg@75
    20
import org.xml.sax.ContentHandler;
franta-hg@75
    21
import org.xml.sax.Locator;
franta-hg@75
    22
import org.xml.sax.SAXException;
franta-hg@75
    23
franta-hg@75
    24
/**
franta-hg@75
    25
 * Improved wrapper for SAX ContentHandler.
franta-hg@75
    26
 *
franta-hg@75
    27
 * @author Ing. František Kučera (frantovo.cz)
franta-hg@75
    28
 */
franta-hg@75
    29
public class Alt2ContentHandler implements ContentHandler {
franta-hg@75
    30
franta-hg@75
    31
	private final ContentHandler handler;
franta-hg@75
    32
franta-hg@75
    33
	public Alt2ContentHandler(ContentHandler handler) {
franta-hg@75
    34
		this.handler = handler;
franta-hg@75
    35
	}
franta-hg@75
    36
franta-hg@75
    37
	public void lineBreak() throws SAXException {
franta-hg@75
    38
		// TODO: ignorableWhitespace()
franta-hg@75
    39
		characters("\n");
franta-hg@75
    40
	}
franta-hg@75
    41
franta-hg@75
    42
	public void indentation(int level) throws SAXException {
franta-hg@75
    43
		for (int i = 0; i < level; i++) {
franta-hg@75
    44
			// TODO: ignorableWhitespace()
franta-hg@75
    45
			characters("\t");
franta-hg@75
    46
		}
franta-hg@75
    47
	}
franta-hg@75
    48
franta-hg@75
    49
	public void characters(String text) throws SAXException {
franta-hg@75
    50
		handler.characters(text.toCharArray(), 0, text.length());
franta-hg@75
    51
	}
franta-hg@75
    52
franta-hg@75
    53
	public void ignorableWhitespace(String text) throws SAXException {
franta-hg@75
    54
		handler.ignorableWhitespace(text.toCharArray(), 0, text.length());
franta-hg@75
    55
	}
franta-hg@75
    56
franta-hg@78
    57
	public void textElement(String text, String uri, String localName, String qName, Attributes atts) throws SAXException {
franta-hg@78
    58
		startElement(uri, localName, qName, atts);
franta-hg@78
    59
		characters(text);
franta-hg@78
    60
		endElement(uri, localName, qName);
franta-hg@78
    61
	}
franta-hg@78
    62
franta-hg@75
    63
	// ---------------------------------------------------------------------------------------------
franta-hg@75
    64
	@Override
franta-hg@75
    65
	public void setDocumentLocator(Locator locator) {
franta-hg@75
    66
		handler.setDocumentLocator(locator);
franta-hg@75
    67
	}
franta-hg@75
    68
franta-hg@75
    69
	@Override
franta-hg@75
    70
	public void startDocument() throws SAXException {
franta-hg@75
    71
		handler.startDocument();
franta-hg@75
    72
	}
franta-hg@75
    73
franta-hg@75
    74
	@Override
franta-hg@75
    75
	public void endDocument() throws SAXException {
franta-hg@75
    76
		handler.endDocument();
franta-hg@75
    77
	}
franta-hg@75
    78
franta-hg@75
    79
	@Override
franta-hg@75
    80
	public void startPrefixMapping(String prefix, String uri) throws SAXException {
franta-hg@75
    81
		handler.startPrefixMapping(prefix, uri);
franta-hg@75
    82
	}
franta-hg@75
    83
franta-hg@75
    84
	@Override
franta-hg@75
    85
	public void endPrefixMapping(String prefix) throws SAXException {
franta-hg@75
    86
		handler.endPrefixMapping(prefix);
franta-hg@75
    87
	}
franta-hg@75
    88
franta-hg@75
    89
	@Override
franta-hg@75
    90
	public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
franta-hg@75
    91
		handler.startElement(uri, localName, qName, atts);
franta-hg@75
    92
	}
franta-hg@75
    93
franta-hg@75
    94
	@Override
franta-hg@75
    95
	public void endElement(String uri, String localName, String qName) throws SAXException {
franta-hg@75
    96
		handler.endElement(uri, localName, qName);
franta-hg@75
    97
	}
franta-hg@75
    98
franta-hg@75
    99
	@Override
franta-hg@75
   100
	public void characters(char[] ch, int start, int length) throws SAXException {
franta-hg@75
   101
		handler.characters(ch, start, length);
franta-hg@75
   102
	}
franta-hg@75
   103
franta-hg@75
   104
	@Override
franta-hg@75
   105
	public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
franta-hg@75
   106
		handler.ignorableWhitespace(ch, start, length);
franta-hg@75
   107
	}
franta-hg@75
   108
franta-hg@75
   109
	@Override
franta-hg@75
   110
	public void processingInstruction(String target, String data) throws SAXException {
franta-hg@75
   111
		handler.processingInstruction(target, data);
franta-hg@75
   112
	}
franta-hg@75
   113
franta-hg@75
   114
	@Override
franta-hg@75
   115
	public void skippedEntity(String name) throws SAXException {
franta-hg@75
   116
		handler.skippedEntity(name);
franta-hg@75
   117
	}
franta-hg@75
   118
}