# HG changeset patch # User František Kučera # 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