# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# 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 {
 
+	/**
+	 * <p>
+	 * TODO: same format as Java XML properties</p>
+	 * <p>
+	 * TODO: support also nested mode <code>aaa.bbb.ccc=xxx</code> →
+	 * <code>&lt;aaa&gt;&lt;bbb&gt;&lt;ccc&gt;xxx&lt;/ccc&gt;&lt;/bbb&gt;&lt;/aaa&gt;</code></p>
+	 */
 	@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<Object, Object> 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<String, Object> konfigurace = new HashMap<>();
+	private Map<String, Object> 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