diff -r b2fbb3570ae1 -r 64358dd0999f java/alt2xml-in-json/src/cz/frantovo/alt2xml/in/json/Reader.java --- a/java/alt2xml-in-json/src/cz/frantovo/alt2xml/in/json/Reader.java Sat Jun 07 10:49:42 2014 +0200 +++ b/java/alt2xml-in-json/src/cz/frantovo/alt2xml/in/json/Reader.java Sat Jun 07 11:23:58 2014 +0200 @@ -17,39 +17,22 @@ */ package cz.frantovo.alt2xml.in.json; +import cz.frantovo.alt2xml.AbstractAlt2XmlReader; import java.io.IOException; import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; -import org.xml.sax.ContentHandler; -import org.xml.sax.DTDHandler; -import org.xml.sax.EntityResolver; -import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXNotSupportedException; -import org.xml.sax.XMLReader; /** * - * @author fiki + * @author Ing. František Kučera (frantovo.cz) */ -public class Reader implements XMLReader { - - private ContentHandler contentHandler; - private ErrorHandler errorHandler; - private DTDHandler dtdHandler; - private EntityResolver entityResolver; - private Map konfigurace = new HashMap<>(); +public class Reader extends AbstractAlt2XmlReader { @Override public void parse(InputSource input) throws IOException, SAXException { - /** - * TODO: rozpornat formát vstupu a podle toho delegovat - */ JSONParser p = new JSONParser(); InputStreamReader vstup = new InputStreamReader(input.getByteStream()); JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler); @@ -57,78 +40,7 @@ try { p.parse(vstup, handler); } catch (ParseException e) { - throw new SAXException("Chyba při načítání JSONu", e); + throw new SAXException("Unable to parse JSON: " + input.getSystemId(), e); } } - - @Override - public void parse(String systemId) throws IOException, SAXException { - parse(new InputSource(systemId)); - } - - @Override - public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException { - /** - * TODO: - * All XMLReaders are required to recognize - * the http://xml.org/sax/features/namespaces - * and the http://xml.org/sax/features/namespace-prefixes feature names. - */ - throw new SAXNotSupportedException("Zatím není podporováno."); - } - - @Override - public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException { - throw new SAXNotSupportedException("Zatím není podporováno."); - } - - @Override - public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException { - return konfigurace.get(name); - } - - @Override - public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { - konfigurace.put(name, value); - } - - @Override - public void setEntityResolver(EntityResolver entityResolver) { - this.entityResolver = entityResolver; - } - - @Override - public EntityResolver getEntityResolver() { - return entityResolver; - } - - @Override - public void setDTDHandler(DTDHandler dtdHandler) { - this.dtdHandler = dtdHandler; - } - - @Override - public DTDHandler getDTDHandler() { - return dtdHandler; - } - - @Override - public void setContentHandler(ContentHandler contentHandler) { - this.contentHandler = contentHandler; - } - - @Override - public ContentHandler getContentHandler() { - return contentHandler; - } - - @Override - public void setErrorHandler(ErrorHandler errorHandler) { - this.errorHandler = errorHandler; - } - - @Override - public ErrorHandler getErrorHandler() { - return errorHandler; - } }