# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# Date 1402214031 -7200
# Node ID ad36a104623fd400986c023be1ecaaabd3f7d445
# Parent  106c5d280835721e036c22d60fd5a49bc8b4dd4c
use AltInputSource instead of just systemId in canRead() and findReader()

diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlReaderFactory.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlReaderFactory.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlReaderFactory.java	Sun Jun 08 09:53:51 2014 +0200
@@ -27,10 +27,10 @@
 public interface Alt2XmlReaderFactory {
 
 	/**
-	 * @param systemId system ID of the document to be read
+	 * @param inputSource  source of the document to be read
 	 * @return whether this alternative format is supported
 	 */
-	public boolean canRead(String systemId);
+	public boolean canRead(AltInputSource inputSource);
 
 	public XMLReader getReader() throws SAXException;
 }
diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlRegexReaderFactory.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlRegexReaderFactory.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/Alt2XmlRegexReaderFactory.java	Sun Jun 08 09:53:51 2014 +0200
@@ -30,7 +30,7 @@
 	protected abstract Pattern getSystemIdPattern();
 
 	@Override
-	public boolean canRead(String systemId) {
-		return getSystemIdPattern().matcher(systemId).matches();
+	public boolean canRead(AltInputSource inputSource) {
+		return getSystemIdPattern().matcher(inputSource.getSystemId()).matches();
 	}
 }
diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/AltInputSource.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/AltInputSource.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/AltInputSource.java	Sun Jun 08 09:53:51 2014 +0200
@@ -124,4 +124,9 @@
 	public String getSystemId() {
 		return originalSource.getSystemId();
 	}
+
+	@Override
+	public String toString() {
+		return "AltInputSource: systemId=" + getSystemId() + " publicId=" + getPublicId();
+	}
 }
diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ParserFactory.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ParserFactory.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ParserFactory.java	Sun Jun 08 09:53:51 2014 +0200
@@ -86,7 +86,7 @@
 	private class FallbackReaderFactory implements Alt2XmlReaderFactory {
 
 		@Override
-		public boolean canRead(String systemId) {
+		public boolean canRead(AltInputSource inputSource) {
 			return true;
 		}
 
@@ -102,13 +102,13 @@
 	}
 
 	@Override
-	public XMLReader findReader(String systemId) throws SAXException {
+	public XMLReader findReader(AltInputSource inputSource) throws SAXException {
 		for (Alt2XmlReaderFactory f : readerFactories) {
-			if (f.canRead(systemId)) {
+			if (f.canRead(inputSource)) {
 				return f.getReader();
 			}
 		}
-		throw new SAXException("Iterated over " + readerFactories.size() + " and was unable to find XMLReader for SystemId: " + systemId);
+		throw new SAXException("Iterated over " + readerFactories.size() + " and was unable to find XMLReader for SystemId: " + inputSource);
 	}
 
 	@Override
@@ -131,7 +131,7 @@
 
 	private static class AltSAXParser extends SAXParser {
 
-		private XMLReader xmlReader;
+		private final XMLReader xmlReader;
 
 		public AltSAXParser(XMLReader xmlReader) {
 			this.xmlReader = xmlReader;
diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ReaderFinder.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ReaderFinder.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/ReaderFinder.java	Sun Jun 08 09:53:51 2014 +0200
@@ -11,10 +11,10 @@
 
 	/**
 	 *
-	 * @param systemId systemId of the document which should be parsed
+	 * @param inputSource source of the document which should be parsed
 	 * @return XMLReader appropriate for this document
 	 * @throws org.xml.sax.SAXException if we have no reader for given systemId
 	 */
-	public XMLReader findReader(String systemId) throws SAXException;
+	public XMLReader findReader(AltInputSource inputSource) throws SAXException;
 
 }
diff -r 106c5d280835 -r ad36a104623f java/alt2xml-lib-input/src/cz/frantovo/alt2xml/SuperReader.java
--- a/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/SuperReader.java	Sun Jun 08 00:01:29 2014 +0200
+++ b/java/alt2xml-lib-input/src/cz/frantovo/alt2xml/SuperReader.java	Sun Jun 08 09:53:51 2014 +0200
@@ -52,9 +52,9 @@
 	@Override
 	public void parse(InputSource input) throws IOException, SAXException {
 
-		input = new AltInputSource(entityResolver, input);
+		AltInputSource altInput = new AltInputSource(entityResolver, input);
 
-		XMLReader reader = readerFinder.findReader(input.getSystemId());
+		XMLReader reader = readerFinder.findReader(altInput);
 
 		reader.setContentHandler(contentHandler);
 		reader.setDTDHandler(dtdHandler);
@@ -69,7 +69,7 @@
 			reader.setFeature(e.getKey(), e.getValue());
 		}
 
-		reader.parse(input);
+		reader.parse(altInput);
 	}
 
 	@Override