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