package org.lodder.subtools.sublibrary.data;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.lodder.subtools.sublibrary.Manager;
import org.lodder.subtools.sublibrary.ManagerException;
import org.lodder.subtools.sublibrary.ManagerSetupException;
import org.lodder.subtools.sublibrary.xml.XMLHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class XmlHTTP {
private static final Logger LOGGER = LoggerFactory.getLogger(XmlHTTP.class);
private Manager manager;
public XmlHTTP(Manager manager) {
this.manager = manager;
}
public Document getXML(String url) throws ParserConfigurationException, IOException,
ManagerSetupException, ManagerException {
LOGGER.trace("getXML {}", url);
return XMLHelper.getDocument(manager.getContentStream(url, null, false));
}
public Document getXMLDisk(String url) throws ManagerSetupException, ManagerException,
ParserConfigurationException, SAXException, IOException {
LOGGER.trace("getXMLDisk {}", url);
String content = manager.getContent(url, null, true);
// Bierdopje issue! OElig
content = content.replaceAll("Œ", "Œ");
// Bierdopje issue! Π
content = content.replaceAll("Π", "\u003A0").replaceAll("π", "\u003A0");
// BIerdopje issue! …
content = content.replaceAll("…", "...");
return XMLHelper.getDocument(content);
}
public void removeCacheEntry(String url) throws ManagerSetupException {
LOGGER.trace("removeCacheEntry {}", url);
manager.removeCacheObject(url);
}
}