@@ -0,0 +1,1453 @@
+package info.freelibrary.jiiify.util;%0A%0Aimport org.xml.sax.Attributes;%0Aimport org.xml.sax.SAXException;%0Aimport org.xml.sax.helpers.DefaultHandler;%0A%0A/**%0A * A SAX handler for Kdu's jp2info output.%0A *%0A * @author Kevin S. Clarke (%3Ca href=%22mailto:ksclarke@ksclarke.io%22%3Eksclarke@ksclarke.io%3C/a%3E)%0A */%0Apublic class KduWidthHeightHandler extends DefaultHandler %7B%0A%0A    final StringBuilder myValue = new StringBuilder();%0A%0A    int myHeight;%0A%0A    int myWidth;%0A%0A    String myLastElement;%0A%0A    @Override%0A    public void characters(final char%5B%5D aCharArray, final int aStart, final int aLength) throws SAXException %7B%0A        if (myLastElement.equals(%22width%22) %7C%7C myLastElement.equals(%22height%22)) %7B%0A            myValue.append(aCharArray, aStart, aLength);%0A        %7D%0A    %7D%0A%0A    @Override%0A    public void startElement(final String aURI, final String aLocalName, final String aQName,%0A            final Attributes aAttributes) throws SAXException %7B%0A        if (aLocalName.equals(%22width%22) %7C%7C aLocalName.equals(%22height%22)) %7B%0A            myValue.delete(0, myValue.length());%0A        %7D%0A%0A        myLastElement = aLocalName;%0A    %7D%0A%0A    @Override%0A    public void endElement(final String aURI, final String aLocalName, final String aQName) %7B%0A        if (aLocalName.equals(%22width%22)) %7B%0A            myWidth = Integer.parseInt(myValue.toString().trim());%0A        %7D else if (aLocalName.equals(%22height%22)) %7B%0A            myHeight = Integer.parseInt(myValue.toString().trim());%0A        %7D%0A    %7D%0A%0A%7D

Add missing class