/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.jena.rdfxml.xmlinput.impl; import org.apache.jena.rdfxml.xmlinput.SAX2RDF ; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.ext.LexicalHandler; /** * This class is public merely to reduce the amount of irrelevant documentation * generated by Javadoc for {@link SAX2RDF}. * * There is nothing of interest in this JavaDoc. This if (depth>0) superclass * implements the functionality needed by {@link SAX2RDF}. The API given here * is the familiar SAX. */ public class SAX2RDFImpl extends XMLHandler implements LexicalHandler, ContentHandler, ErrorHandler { private int depth; final private String lang; protected SAX2RDFImpl(String base, String l) { lang = l; } protected void initParse(String b) throws SAXParseException { super.initParse(b,lang==null?"":lang); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#endCDATA() */ @Override public void endCDATA() throws SAXException { if (depth > 0) super.endCDATA(); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#endDTD() */ @Override public void endDTD() throws SAXException { if (depth > 0) super.endDTD(); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#startCDATA() */ @Override public void startCDATA() throws SAXException { if (depth > 0) super.startCDATA(); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#comment(char[], int, int) */ @Override public void comment(char[] ch, int start, int length) throws SAXParseException { if (depth > 0) super.comment(ch, start, length); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#endEntity(java.lang.String) */ @Override public void endEntity(String name) throws SAXException { if (depth > 0) super.endEntity(name); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#startEntity(java.lang.String) */ @Override public void startEntity(String name) throws SAXException { if (depth > 0) super.startEntity(name); } /* * (non-Javadoc) * * @see org.xml.sax.ext.LexicalHandler#startDTD(java.lang.String, * java.lang.String, java.lang.String) */ @Override public void startDTD(String name, String publicId, String systemId) throws SAXException { if (depth > 0) super.startDTD(name, publicId, systemId); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#endDocument() */ @Override public void endDocument() throws SAXException { if (depth > 0) super.endDocument(); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#startDocument() */ @Override public void startDocument() throws SAXException { if (depth > 0) super.startDocument(); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#characters(char[], int, int) */ @Override public void characters(char[] ch, int start, int length) throws SAXException { if (depth > 0) super.characters(ch, start, length); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#ignorableWhitespace(char[], int, int) */ @Override public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { if (depth > 0) super.ignorableWhitespace(ch, start, length); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#endPrefixMapping(java.lang.String) */ @Override public void endPrefixMapping(String prefix) { if (depth > 0) super.endPrefixMapping(prefix); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#skippedEntity(java.lang.String) */ @Override public void skippedEntity(String name) throws SAXException { if (depth > 0) super.skippedEntity(name); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#processingInstruction(java.lang.String, * java.lang.String) */ @Override public void processingInstruction(String target, String data) throws SAXException { if (depth > 0) super.processingInstruction(target, data); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#endElement(java.lang.String, * java.lang.String, java.lang.String) */ @Override public void endElement(String namespaceURI, String localName, String qName) throws SAXException { if (depth <= 0) { // Does not return. fatalError(new SAXParseException("Unmatched end tag: " + qName, getLocator())); } super.endElement(namespaceURI, localName, qName); if (--depth == 0) { close(); } } protected void close() { afterParse(); } /* * (non-Javadoc) * * @see org.xml.sax.ContentHandler#startElement(java.lang.String, * java.lang.String, java.lang.String, org.xml.sax.Attributes) */ @Override public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { depth++; super.startElement(namespaceURI, localName, qName, atts); } /* * (non-Javadoc) * * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException) */ @Override public void error(SAXParseException exception) throws SAXParseException { super.error(exception); } /* * (non-Javadoc) * @see org.xml.sax.ErrorHandler.errorError(org.xml.sax.SAXParseException) */ @Override public void fatalError(SAXParseException exception) throws SAXException { super.fatalError(exception); } /* * (non-Javadoc) * * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException) */ @Override public void warning(SAXParseException exception) throws SAXParseException { super.warning(exception); } }