java/alt2xml/src/cz/frantovo/alt2xml/SuperReader.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 02 Jan 2012 20:15:52 +0100
changeset 2 be5bfbe1f0cd
permissions -rw-r--r--
První nástřel – trochu už to funguje, převádí JSON na XML.
franta-hg@2
     1
package cz.frantovo.alt2xml;
franta-hg@2
     2
franta-hg@2
     3
import java.io.BufferedReader;
franta-hg@2
     4
import java.io.IOException;
franta-hg@2
     5
import java.io.InputStreamReader;
franta-hg@2
     6
import java.util.logging.Level;
franta-hg@2
     7
import java.util.logging.Logger;
franta-hg@2
     8
import org.json.simple.parser.JSONParser;
franta-hg@2
     9
import org.json.simple.parser.ParseException;
franta-hg@2
    10
import org.xml.sax.ContentHandler;
franta-hg@2
    11
import org.xml.sax.DTDHandler;
franta-hg@2
    12
import org.xml.sax.EntityResolver;
franta-hg@2
    13
import org.xml.sax.ErrorHandler;
franta-hg@2
    14
import org.xml.sax.InputSource;
franta-hg@2
    15
import org.xml.sax.SAXException;
franta-hg@2
    16
import org.xml.sax.SAXNotRecognizedException;
franta-hg@2
    17
import org.xml.sax.SAXNotSupportedException;
franta-hg@2
    18
import org.xml.sax.XMLReader;
franta-hg@2
    19
franta-hg@2
    20
/**
franta-hg@2
    21
 *
franta-hg@2
    22
 * @author fiki
franta-hg@2
    23
 */
franta-hg@2
    24
public class SuperReader implements XMLReader {
franta-hg@2
    25
franta-hg@2
    26
	private static final Logger log = Logger.getLogger(SuperReader.class.getName());
franta-hg@2
    27
	private ContentHandler contentHandler;
franta-hg@2
    28
franta-hg@2
    29
	@Override
franta-hg@2
    30
	public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
franta-hg@2
    31
		// TODO: dopsat
franta-hg@2
    32
		log.log(Level.FINE, "getFeature: {0}", name);
franta-hg@2
    33
		return false;
franta-hg@2
    34
	}
franta-hg@2
    35
franta-hg@2
    36
	@Override
franta-hg@2
    37
	public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException {
franta-hg@2
    38
		// TODO: dopsat
franta-hg@2
    39
		log.log(Level.FINE, "setFeature: {0} = {1}", new Object[]{name, value});
franta-hg@2
    40
	}
franta-hg@2
    41
franta-hg@2
    42
	@Override
franta-hg@2
    43
	public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
franta-hg@2
    44
		// TODO: dopsat
franta-hg@2
    45
		log.log(Level.FINE, "getProperty: {0}", name);
franta-hg@2
    46
		return null;
franta-hg@2
    47
	}
franta-hg@2
    48
franta-hg@2
    49
	@Override
franta-hg@2
    50
	public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException {
franta-hg@2
    51
		// TODO: dopsat
franta-hg@2
    52
		log.log(Level.FINE, "setProperty: {0} = {1}", new Object[]{name, value});
franta-hg@2
    53
	}
franta-hg@2
    54
franta-hg@2
    55
	@Override
franta-hg@2
    56
	public void setEntityResolver(EntityResolver resolver) {
franta-hg@2
    57
		// TODO: dopsat
franta-hg@2
    58
		log.log(Level.FINE, "setEntityResolver: {0}", resolver);
franta-hg@2
    59
	}
franta-hg@2
    60
franta-hg@2
    61
	@Override
franta-hg@2
    62
	public EntityResolver getEntityResolver() {
franta-hg@2
    63
		// TODO: dopsat
franta-hg@2
    64
		log.log(Level.FINE, "getEntityResolver");
franta-hg@2
    65
		return null;
franta-hg@2
    66
	}
franta-hg@2
    67
franta-hg@2
    68
	@Override
franta-hg@2
    69
	public void setDTDHandler(DTDHandler handler) {
franta-hg@2
    70
		// TODO: dopsat
franta-hg@2
    71
		log.log(Level.FINE, "setDTDHandler: {0}", handler);
franta-hg@2
    72
	}
franta-hg@2
    73
franta-hg@2
    74
	@Override
franta-hg@2
    75
	public DTDHandler getDTDHandler() {
franta-hg@2
    76
		// TODO: dopsat
franta-hg@2
    77
		log.log(Level.FINE, "getDTDHandler");
franta-hg@2
    78
		return null;
franta-hg@2
    79
	}
franta-hg@2
    80
franta-hg@2
    81
	@Override
franta-hg@2
    82
	public void setContentHandler(ContentHandler handler) {
franta-hg@2
    83
		// TODO: dopsat
franta-hg@2
    84
		contentHandler = handler;
franta-hg@2
    85
	}
franta-hg@2
    86
franta-hg@2
    87
	@Override
franta-hg@2
    88
	public ContentHandler getContentHandler() {
franta-hg@2
    89
		// TODO: dopsat
franta-hg@2
    90
		return contentHandler;
franta-hg@2
    91
	}
franta-hg@2
    92
franta-hg@2
    93
	@Override
franta-hg@2
    94
	public void setErrorHandler(ErrorHandler handler) {
franta-hg@2
    95
		// TODO: dopsat
franta-hg@2
    96
		log.log(Level.FINE, "setErrorHandler: {0}", handler);
franta-hg@2
    97
	}
franta-hg@2
    98
franta-hg@2
    99
	@Override
franta-hg@2
   100
	public ErrorHandler getErrorHandler() {
franta-hg@2
   101
		// TODO: dopsat
franta-hg@2
   102
		log.log(Level.FINE, "getErrorHandler");
franta-hg@2
   103
		return null;
franta-hg@2
   104
	}
franta-hg@2
   105
franta-hg@2
   106
	@Override
franta-hg@2
   107
	public void parse(InputSource input) throws IOException, SAXException {
franta-hg@2
   108
		/**
franta-hg@2
   109
		 * TODO: rozpornat formát vstupu a podle toho delegovat
franta-hg@2
   110
		 */
franta-hg@2
   111
		
franta-hg@2
   112
		JSONParser p = new JSONParser();
franta-hg@2
   113
		InputStreamReader vstup = new InputStreamReader(input.getByteStream());
franta-hg@2
   114
		JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler);
franta-hg@2
   115
franta-hg@2
   116
		try {
franta-hg@2
   117
			p.parse(vstup, handler);
franta-hg@2
   118
		} catch (ParseException e) {
franta-hg@2
   119
			throw new SAXException("Chyba při načítání JSONu", e);
franta-hg@2
   120
		}
franta-hg@2
   121
	}
franta-hg@2
   122
franta-hg@2
   123
	@Override
franta-hg@2
   124
	public void parse(String systemId) throws IOException, SAXException {
franta-hg@2
   125
		// TODO: dopsat
franta-hg@2
   126
		throw new UnsupportedOperationException("Zatím není podporované.");
franta-hg@2
   127
	}
franta-hg@2
   128
}