diff -r a598b9d90144 -r 471c0cda94c3 java/alt2xml-in-json/src/cz/frantovo/alt2xml/in/json/Reader.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/java/alt2xml-in-json/src/cz/frantovo/alt2xml/in/json/Reader.java Thu Jun 05 23:45:24 2014 +0200
@@ -0,0 +1,134 @@
+/**
+ * Alt2XML
+ * Copyright © 2014 František Kučera (frantovo.cz)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package cz.frantovo.alt2xml.in.json;
+
+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
+ */
+public class Reader implements XMLReader {
+
+ private ContentHandler contentHandler;
+ private ErrorHandler errorHandler;
+ private DTDHandler dtdHandler;
+ private EntityResolver entityResolver;
+ private Map konfigurace = new HashMap<>();
+
+ @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);
+
+ try {
+ p.parse(vstup, handler);
+ } catch (ParseException e) {
+ throw new SAXException("Chyba při načítání JSONu", 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;
+ }
+}