# HG changeset patch # User František Kučera # Date 1402146232 -7200 # Node ID ac4e617f44e77f9b391bc62671ed0d2cc7b7fdf3 # Parent 361580b755ea36297511cd1e4eb5527dbf837c95 vylepšený alt2xml-in-properties a SuperReader diff -r 361580b755ea -r ac4e617f44e7 java/alt2xml-cli/nbproject/project.properties --- a/java/alt2xml-cli/nbproject/project.properties Sat Jun 07 11:28:27 2014 +0200 +++ b/java/alt2xml-cli/nbproject/project.properties Sat Jun 07 15:03:52 2014 +0200 @@ -54,10 +54,10 @@ javadoc.use=true javadoc.version=false javadoc.windowtitle= -main.class=cz.frantovo.alt2xml.CLI +main.class=cz.frantovo.alt2xml.cli.CLI manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false +mkdist.disabled=true platform.active=default_platform project.alt2xml-lib=../alt2xml-lib reference.alt2xml-lib.jar=${project.alt2xml-lib}/dist/alt2xml-lib.jar diff -r 361580b755ea -r ac4e617f44e7 java/alt2xml-cli/src/cz/frantovo/alt2xml/cli/CLI.java --- a/java/alt2xml-cli/src/cz/frantovo/alt2xml/cli/CLI.java Sat Jun 07 11:28:27 2014 +0200 +++ b/java/alt2xml-cli/src/cz/frantovo/alt2xml/cli/CLI.java Sat Jun 07 15:03:52 2014 +0200 @@ -18,7 +18,7 @@ package cz.frantovo.alt2xml.cli; import cz.frantovo.alt2xml.ParserFactory; -import java.io.InputStream; +import java.io.File; import java.io.OutputStream; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; @@ -33,10 +33,9 @@ public class CLI { public static void main(String[] args) throws Exception { - /** - * Použijeme standardní vstup a výstup: - */ - InputStream vstup = System.in; + System.err.println("startuji…"); + + File vstup = new File(args[0]); OutputStream výstup = System.out; /** @@ -51,13 +50,10 @@ XMLStreamWriter w = xmlOutputFactory.createXMLStreamWriter(výstup); DefaultHandler h = new EchoContentHandler(w); - /** - * Parsujeme JSON a děláme z něj XML: - */ SAXParserFactory t = SAXParserFactory.newInstance(ParserFactory.class.getName(), null); + //SAXParserFactory t = SAXParserFactory.newInstance(); SAXParser p = t.newSAXParser(); p.parse(vstup, h); - - + } } diff -r 361580b755ea -r ac4e617f44e7 java/alt2xml-in-properties/src/cz/frantovo/alt2xml/in/properties/Reader.java --- a/java/alt2xml-in-properties/src/cz/frantovo/alt2xml/in/properties/Reader.java Sat Jun 07 11:28:27 2014 +0200 +++ b/java/alt2xml-in-properties/src/cz/frantovo/alt2xml/in/properties/Reader.java Sat Jun 07 15:03:52 2014 +0200 @@ -19,8 +19,11 @@ import cz.frantovo.alt2xml.AbstractAlt2XmlReader; import java.io.IOException; +import java.util.Map.Entry; +import java.util.Properties; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; /** * @@ -28,8 +31,34 @@ */ public class Reader extends AbstractAlt2XmlReader { + /** + *

+ * TODO: same format as Java XML properties

+ *

+ * TODO: support also nested mode aaa.bbb.ccc=xxx → + * <aaa><bbb><ccc>xxx</ccc></bbb></aaa>

+ */ @Override public void parse(InputSource input) throws IOException, SAXException { + Properties loadedData = new Properties(); + loadedData.load(input.getByteStream()); + contentHandler.startDocument(); + contentHandler.startElement(null, null, "properties", null); + + for (Entry e : loadedData.entrySet()) { + String key = (String) e.getKey(); + String value = (String) e.getValue(); + + AttributesImpl attributes = new AttributesImpl(); + attributes.setAttribute(0, null, "name", "name", "xs:string", key); + + contentHandler.startElement(null, null, "property", attributes); + contentHandler.characters(value.toCharArray(), 0, value.length()); + contentHandler.endElement(null, null, "property"); + } + + contentHandler.endElement(null, null, "properties"); + contentHandler.endDocument(); } } diff -r 361580b755ea -r ac4e617f44e7 java/alt2xml-lib/src/cz/frantovo/alt2xml/SuperReader.java --- a/java/alt2xml-lib/src/cz/frantovo/alt2xml/SuperReader.java Sat Jun 07 11:28:27 2014 +0200 +++ b/java/alt2xml-lib/src/cz/frantovo/alt2xml/SuperReader.java Sat Jun 07 15:03:52 2014 +0200 @@ -18,7 +18,7 @@ package cz.frantovo.alt2xml; import java.io.IOException; -import java.io.InputStreamReader; +import java.net.URI; import java.util.HashMap; import java.util.Map; import org.xml.sax.ContentHandler; @@ -41,7 +41,7 @@ private ErrorHandler errorHandler; private DTDHandler dtdHandler; private EntityResolver entityResolver; - private Map konfigurace = new HashMap<>(); + private Map properties = new HashMap<>(); private final ReaderFinder readerFinder; public SuperReader(ReaderFinder readerFinder) { @@ -50,20 +50,11 @@ @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); - } - */ + System.err.println("SystemId: " + input.getSystemId()); + + XMLReader reader = readerFinder.findReader(input.getSystemId()); + reader.parse(input); } @Override @@ -89,12 +80,12 @@ @Override public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException { - return konfigurace.get(name); + return properties.get(name); } @Override public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { - konfigurace.put(name, value); + properties.put(name, value); } @Override