rozdělení na více projektů: přesun tříd
authorFrantišek Kučera <franta-hg@frantovo.cz>
Thu, 05 Jun 2014 15:03:50 +0200
changeset 10f56a5369245e
parent 9 f40af5368823
child 11 aaf6648af0aa
rozdělení na více projektů: přesun tříd
java/alt2xml-bin/nbproject/project.properties
java/alt2xml-bin/src/cz/frantovo/alt2xml/vstup/JsonSimpleContentHandler.java
java/alt2xml-bin/src/cz/frantovo/alt2xml/vstup/SuperReader.java
java/alt2xml-in-json/nbproject/project.properties
java/alt2xml-in-json/src/cz/frantovo/alt2xml/vstup/JsonSimpleContentHandler.java
java/alt2xml-in-json/src/cz/frantovo/alt2xml/vstup/SuperReader.java
     1.1 --- a/java/alt2xml-bin/nbproject/project.properties	Thu Jun 05 14:45:15 2014 +0200
     1.2 +++ b/java/alt2xml-bin/nbproject/project.properties	Thu Jun 05 15:03:50 2014 +0200
     1.3 @@ -30,7 +30,6 @@
     1.4  includes=**
     1.5  jar.compress=false
     1.6  javac.classpath=\
     1.7 -    ${libs.json-simple.classpath}:\
     1.8      ${reference.alt2xml-lib.jar}
     1.9  # Space-separated list of extra javac options
    1.10  javac.compilerargs=
     2.1 --- a/java/alt2xml-bin/src/cz/frantovo/alt2xml/vstup/JsonSimpleContentHandler.java	Thu Jun 05 14:45:15 2014 +0200
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,135 +0,0 @@
     2.4 -package cz.frantovo.alt2xml.vstup;
     2.5 -
     2.6 -import java.io.IOException;
     2.7 -import java.util.Stack;
     2.8 -import org.json.simple.parser.ParseException;
     2.9 -import org.xml.sax.ContentHandler;
    2.10 -import org.xml.sax.SAXException;
    2.11 -
    2.12 -/**
    2.13 - *
    2.14 - * @author fiki
    2.15 - */
    2.16 -public class JsonSimpleContentHandler implements org.json.simple.parser.ContentHandler {
    2.17 -
    2.18 -	/** Sem vypisujeme XML události */
    2.19 -	private ContentHandler saxVýstup;
    2.20 -	/** Musíme si pamatovat polohu v XML stromu, abychom věděli, kterou značku kdy uzavřít */
    2.21 -	private Stack<String> poloha = new Stack<>();
    2.22 -	/**
    2.23 -	 * Po textových uzlech vkládáme konce elementů rovnou,
    2.24 -	 * ale pokud jeden element končí hned po jiném, 
    2.25 -	 * vložíme mezi ně ještě konec řádku a odsazení.
    2.26 -	 */
    2.27 -	private boolean zalomitŘádek = false;
    2.28 -
    2.29 -	public JsonSimpleContentHandler(ContentHandler saxVýstup) {
    2.30 -		this.saxVýstup = saxVýstup;
    2.31 -	}
    2.32 -
    2.33 -	private void začniElement(String název) throws IOException {
    2.34 -		try {
    2.35 -			vložOdsazení();
    2.36 -			saxVýstup.startElement(null, null, název, null);
    2.37 -			poloha.push(název);
    2.38 -		} catch (SAXException e) {
    2.39 -			throw new IOException("Chyba při začátku elementu.", e);
    2.40 -		}
    2.41 -	}
    2.42 -
    2.43 -	private void ukončiElement() throws IOException {
    2.44 -		try {
    2.45 -			String značka = poloha.pop();
    2.46 -			if (zalomitŘádek) {
    2.47 -				vložOdsazení();
    2.48 -			}
    2.49 -			zalomitŘádek = true;
    2.50 -			saxVýstup.endElement(null, null, značka);
    2.51 -		} catch (SAXException e) {
    2.52 -			throw new IOException("Chyba při ukončování elementu.", e);
    2.53 -		}
    2.54 -	}
    2.55 -
    2.56 -	private void vložOdsazení() throws IOException {
    2.57 -		/**
    2.58 -		 * TODO: ignorableWhitespace() ?
    2.59 -		 */
    2.60 -		vložText("\n");
    2.61 -		for (int i = 0; i < poloha.size(); i++) {
    2.62 -			vložText("\t");
    2.63 -		}
    2.64 -	}
    2.65 -
    2.66 -	private void vložText(String text) throws IOException {
    2.67 -		try {
    2.68 -			saxVýstup.characters(text.toCharArray(), 0, text.length());
    2.69 -		} catch (SAXException e) {
    2.70 -			throw new IOException("Chyba při vkládání textu.", e);
    2.71 -		}
    2.72 -	}
    2.73 -
    2.74 -	@Override
    2.75 -	public void startJSON() throws ParseException, IOException {
    2.76 -		try {
    2.77 -			saxVýstup.startDocument();
    2.78 -			začniElement("objekt");
    2.79 -		} catch (SAXException e) {
    2.80 -			throw new IOException("Chyba při začátku dokumentu.", e);
    2.81 -		}
    2.82 -	}
    2.83 -
    2.84 -	@Override
    2.85 -	public void endJSON() throws ParseException, IOException {
    2.86 -		try {
    2.87 -			ukončiElement();
    2.88 -			vložText("\n");
    2.89 -			saxVýstup.endDocument();
    2.90 -		} catch (SAXException e) {
    2.91 -			throw new IOException(e);
    2.92 -		}
    2.93 -	}
    2.94 -
    2.95 -	@Override
    2.96 -	public boolean startObject() throws ParseException, IOException {
    2.97 -		// System.err.println("startObject");
    2.98 -		return true;
    2.99 -	}
   2.100 -
   2.101 -	@Override
   2.102 -	public boolean endObject() throws ParseException, IOException {
   2.103 -		// System.err.println("endObject");
   2.104 -		return true;
   2.105 -	}
   2.106 -
   2.107 -	@Override
   2.108 -	public boolean startObjectEntry(String key) throws ParseException, IOException {
   2.109 -		začniElement(key);
   2.110 -		return true;
   2.111 -	}
   2.112 -
   2.113 -	@Override
   2.114 -	public boolean endObjectEntry() throws ParseException, IOException {
   2.115 -		ukončiElement();
   2.116 -		// System.err.println("endObjectEntry");
   2.117 -		return true;
   2.118 -	}
   2.119 -
   2.120 -	@Override
   2.121 -	public boolean startArray() throws ParseException, IOException {
   2.122 -		// System.err.println("startArray");
   2.123 -		return true;
   2.124 -	}
   2.125 -
   2.126 -	@Override
   2.127 -	public boolean endArray() throws ParseException, IOException {
   2.128 -		// System.err.println("endArray");
   2.129 -		return true;
   2.130 -	}
   2.131 -
   2.132 -	@Override
   2.133 -	public boolean primitive(Object value) throws ParseException, IOException {
   2.134 -		vložText(String.valueOf(value));
   2.135 -		zalomitŘádek = false;
   2.136 -		return true;
   2.137 -	}
   2.138 -}
     3.1 --- a/java/alt2xml-bin/src/cz/frantovo/alt2xml/vstup/SuperReader.java	Thu Jun 05 14:45:15 2014 +0200
     3.2 +++ b/java/alt2xml-bin/src/cz/frantovo/alt2xml/vstup/SuperReader.java	Thu Jun 05 15:03:50 2014 +0200
     3.3 @@ -4,8 +4,8 @@
     3.4  import java.io.InputStreamReader;
     3.5  import java.util.HashMap;
     3.6  import java.util.Map;
     3.7 -import org.json.simple.parser.JSONParser;
     3.8 -import org.json.simple.parser.ParseException;
     3.9 +//import org.json.simple.parser.JSONParser;
    3.10 +//import org.json.simple.parser.ParseException;
    3.11  import org.xml.sax.ContentHandler;
    3.12  import org.xml.sax.DTDHandler;
    3.13  import org.xml.sax.EntityResolver;
    3.14 @@ -33,15 +33,17 @@
    3.15  		/**
    3.16  		 * TODO: rozpornat formát vstupu a podle toho delegovat
    3.17  		 */
    3.18 -		JSONParser p = new JSONParser();
    3.19 +		//JSONParser p = new JSONParser();
    3.20  		InputStreamReader vstup = new InputStreamReader(input.getByteStream());
    3.21 -		JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler);
    3.22 +		//JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler);
    3.23  
    3.24 +		/*
    3.25  		try {
    3.26  			p.parse(vstup, handler);
    3.27  		} catch (ParseException e) {
    3.28  			throw new SAXException("Chyba při načítání JSONu", e);
    3.29  		}
    3.30 +		*/
    3.31  	}
    3.32  
    3.33  	@Override
     4.1 --- a/java/alt2xml-in-json/nbproject/project.properties	Thu Jun 05 14:45:15 2014 +0200
     4.2 +++ b/java/alt2xml-in-json/nbproject/project.properties	Thu Jun 05 15:03:50 2014 +0200
     4.3 @@ -30,7 +30,8 @@
     4.4  includes=**
     4.5  jar.compress=false
     4.6  javac.classpath=\
     4.7 -    ${reference.alt2xml-lib.jar}
     4.8 +    ${reference.alt2xml-lib.jar}:\
     4.9 +    ${libs.json-simple.classpath}
    4.10  # Space-separated list of extra javac options
    4.11  javac.compilerargs=
    4.12  javac.deprecation=false
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/java/alt2xml-in-json/src/cz/frantovo/alt2xml/vstup/JsonSimpleContentHandler.java	Thu Jun 05 15:03:50 2014 +0200
     5.3 @@ -0,0 +1,135 @@
     5.4 +package cz.frantovo.alt2xml.vstup;
     5.5 +
     5.6 +import java.io.IOException;
     5.7 +import java.util.Stack;
     5.8 +import org.json.simple.parser.ParseException;
     5.9 +import org.xml.sax.ContentHandler;
    5.10 +import org.xml.sax.SAXException;
    5.11 +
    5.12 +/**
    5.13 + *
    5.14 + * @author fiki
    5.15 + */
    5.16 +public class JsonSimpleContentHandler implements org.json.simple.parser.ContentHandler {
    5.17 +
    5.18 +	/** Sem vypisujeme XML události */
    5.19 +	private ContentHandler saxVýstup;
    5.20 +	/** Musíme si pamatovat polohu v XML stromu, abychom věděli, kterou značku kdy uzavřít */
    5.21 +	private Stack<String> poloha = new Stack<>();
    5.22 +	/**
    5.23 +	 * Po textových uzlech vkládáme konce elementů rovnou,
    5.24 +	 * ale pokud jeden element končí hned po jiném, 
    5.25 +	 * vložíme mezi ně ještě konec řádku a odsazení.
    5.26 +	 */
    5.27 +	private boolean zalomitŘádek = false;
    5.28 +
    5.29 +	public JsonSimpleContentHandler(ContentHandler saxVýstup) {
    5.30 +		this.saxVýstup = saxVýstup;
    5.31 +	}
    5.32 +
    5.33 +	private void začniElement(String název) throws IOException {
    5.34 +		try {
    5.35 +			vložOdsazení();
    5.36 +			saxVýstup.startElement(null, null, název, null);
    5.37 +			poloha.push(název);
    5.38 +		} catch (SAXException e) {
    5.39 +			throw new IOException("Chyba při začátku elementu.", e);
    5.40 +		}
    5.41 +	}
    5.42 +
    5.43 +	private void ukončiElement() throws IOException {
    5.44 +		try {
    5.45 +			String značka = poloha.pop();
    5.46 +			if (zalomitŘádek) {
    5.47 +				vložOdsazení();
    5.48 +			}
    5.49 +			zalomitŘádek = true;
    5.50 +			saxVýstup.endElement(null, null, značka);
    5.51 +		} catch (SAXException e) {
    5.52 +			throw new IOException("Chyba při ukončování elementu.", e);
    5.53 +		}
    5.54 +	}
    5.55 +
    5.56 +	private void vložOdsazení() throws IOException {
    5.57 +		/**
    5.58 +		 * TODO: ignorableWhitespace() ?
    5.59 +		 */
    5.60 +		vložText("\n");
    5.61 +		for (int i = 0; i < poloha.size(); i++) {
    5.62 +			vložText("\t");
    5.63 +		}
    5.64 +	}
    5.65 +
    5.66 +	private void vložText(String text) throws IOException {
    5.67 +		try {
    5.68 +			saxVýstup.characters(text.toCharArray(), 0, text.length());
    5.69 +		} catch (SAXException e) {
    5.70 +			throw new IOException("Chyba při vkládání textu.", e);
    5.71 +		}
    5.72 +	}
    5.73 +
    5.74 +	@Override
    5.75 +	public void startJSON() throws ParseException, IOException {
    5.76 +		try {
    5.77 +			saxVýstup.startDocument();
    5.78 +			začniElement("objekt");
    5.79 +		} catch (SAXException e) {
    5.80 +			throw new IOException("Chyba při začátku dokumentu.", e);
    5.81 +		}
    5.82 +	}
    5.83 +
    5.84 +	@Override
    5.85 +	public void endJSON() throws ParseException, IOException {
    5.86 +		try {
    5.87 +			ukončiElement();
    5.88 +			vložText("\n");
    5.89 +			saxVýstup.endDocument();
    5.90 +		} catch (SAXException e) {
    5.91 +			throw new IOException(e);
    5.92 +		}
    5.93 +	}
    5.94 +
    5.95 +	@Override
    5.96 +	public boolean startObject() throws ParseException, IOException {
    5.97 +		// System.err.println("startObject");
    5.98 +		return true;
    5.99 +	}
   5.100 +
   5.101 +	@Override
   5.102 +	public boolean endObject() throws ParseException, IOException {
   5.103 +		// System.err.println("endObject");
   5.104 +		return true;
   5.105 +	}
   5.106 +
   5.107 +	@Override
   5.108 +	public boolean startObjectEntry(String key) throws ParseException, IOException {
   5.109 +		začniElement(key);
   5.110 +		return true;
   5.111 +	}
   5.112 +
   5.113 +	@Override
   5.114 +	public boolean endObjectEntry() throws ParseException, IOException {
   5.115 +		ukončiElement();
   5.116 +		// System.err.println("endObjectEntry");
   5.117 +		return true;
   5.118 +	}
   5.119 +
   5.120 +	@Override
   5.121 +	public boolean startArray() throws ParseException, IOException {
   5.122 +		// System.err.println("startArray");
   5.123 +		return true;
   5.124 +	}
   5.125 +
   5.126 +	@Override
   5.127 +	public boolean endArray() throws ParseException, IOException {
   5.128 +		// System.err.println("endArray");
   5.129 +		return true;
   5.130 +	}
   5.131 +
   5.132 +	@Override
   5.133 +	public boolean primitive(Object value) throws ParseException, IOException {
   5.134 +		vložText(String.valueOf(value));
   5.135 +		zalomitŘádek = false;
   5.136 +		return true;
   5.137 +	}
   5.138 +}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/java/alt2xml-in-json/src/cz/frantovo/alt2xml/vstup/SuperReader.java	Thu Jun 05 15:03:50 2014 +0200
     6.3 @@ -0,0 +1,117 @@
     6.4 +package cz.frantovo.alt2xml.vstup;
     6.5 +
     6.6 +import java.io.IOException;
     6.7 +import java.io.InputStreamReader;
     6.8 +import java.util.HashMap;
     6.9 +import java.util.Map;
    6.10 +import org.json.simple.parser.JSONParser;
    6.11 +import org.json.simple.parser.ParseException;
    6.12 +import org.xml.sax.ContentHandler;
    6.13 +import org.xml.sax.DTDHandler;
    6.14 +import org.xml.sax.EntityResolver;
    6.15 +import org.xml.sax.ErrorHandler;
    6.16 +import org.xml.sax.InputSource;
    6.17 +import org.xml.sax.SAXException;
    6.18 +import org.xml.sax.SAXNotRecognizedException;
    6.19 +import org.xml.sax.SAXNotSupportedException;
    6.20 +import org.xml.sax.XMLReader;
    6.21 +
    6.22 +/**
    6.23 + *
    6.24 + * @author fiki
    6.25 + */
    6.26 +public class SuperReader implements XMLReader {
    6.27 +
    6.28 +	private ContentHandler contentHandler;
    6.29 +	private ErrorHandler errorHandler;
    6.30 +	private DTDHandler dtdHandler;
    6.31 +	private EntityResolver entityResolver;
    6.32 +	private Map<String, Object> konfigurace = new HashMap<>();
    6.33 +	
    6.34 +	@Override
    6.35 +	public void parse(InputSource input) throws IOException, SAXException {
    6.36 +		/**
    6.37 +		 * TODO: rozpornat formát vstupu a podle toho delegovat
    6.38 +		 */
    6.39 +		JSONParser p = new JSONParser();
    6.40 +		InputStreamReader vstup = new InputStreamReader(input.getByteStream());
    6.41 +		JsonSimpleContentHandler handler = new JsonSimpleContentHandler(contentHandler);
    6.42 +
    6.43 +		try {
    6.44 +			p.parse(vstup, handler);
    6.45 +		} catch (ParseException e) {
    6.46 +			throw new SAXException("Chyba při načítání JSONu", e);
    6.47 +		}
    6.48 +	}
    6.49 +
    6.50 +	@Override
    6.51 +	public void parse(String systemId) throws IOException, SAXException {
    6.52 +		parse(new InputSource(systemId));
    6.53 +	}
    6.54 +
    6.55 +	@Override
    6.56 +	public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
    6.57 +		/**
    6.58 +		 * TODO: 
    6.59 +		 * All XMLReaders are required to recognize 
    6.60 +		 * the http://xml.org/sax/features/namespaces 
    6.61 +		 * and the http://xml.org/sax/features/namespace-prefixes feature names.
    6.62 +		 */
    6.63 +		throw new SAXNotSupportedException("Zatím není podporováno.");
    6.64 +	}
    6.65 +
    6.66 +	@Override
    6.67 +	public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException {
    6.68 +		throw new SAXNotSupportedException("Zatím není podporováno.");
    6.69 +	}
    6.70 +
    6.71 +	@Override
    6.72 +	public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException {
    6.73 +		return konfigurace.get(name);
    6.74 +	}
    6.75 +
    6.76 +	@Override
    6.77 +	public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException {
    6.78 +		konfigurace.put(name, value);
    6.79 +	}
    6.80 +
    6.81 +	@Override
    6.82 +	public void setEntityResolver(EntityResolver entityResolver) {
    6.83 +		this.entityResolver = entityResolver;
    6.84 +	}
    6.85 +
    6.86 +	@Override
    6.87 +	public EntityResolver getEntityResolver() {
    6.88 +		return entityResolver;
    6.89 +	}
    6.90 +
    6.91 +	@Override
    6.92 +	public void setDTDHandler(DTDHandler dtdHandler) {
    6.93 +		this.dtdHandler = dtdHandler;
    6.94 +	}
    6.95 +
    6.96 +	@Override
    6.97 +	public DTDHandler getDTDHandler() {
    6.98 +		return dtdHandler;
    6.99 +	}
   6.100 +
   6.101 +	@Override
   6.102 +	public void setContentHandler(ContentHandler contentHandler) {
   6.103 +		this.contentHandler = contentHandler;
   6.104 +	}
   6.105 +
   6.106 +	@Override
   6.107 +	public ContentHandler getContentHandler() {
   6.108 +		return contentHandler;
   6.109 +	}
   6.110 +
   6.111 +	@Override
   6.112 +	public void setErrorHandler(ErrorHandler errorHandler) {
   6.113 +		this.errorHandler = errorHandler;
   6.114 +	}
   6.115 +
   6.116 +	@Override
   6.117 +	public ErrorHandler getErrorHandler() {
   6.118 +		return errorHandler;
   6.119 +	}
   6.120 +}