use of org.xml.sax.helpers.LocatorImpl in project robovm by robovm.
the class LocatorImplTest method testSetSystemIdGetSystemId.
public void testSetSystemIdGetSystemId() {
LocatorImpl l = new LocatorImpl();
l.setSystemId(SYS);
assertEquals(SYS, l.getSystemId());
l.setSystemId(null);
assertEquals(null, l.getSystemId());
}
use of org.xml.sax.helpers.LocatorImpl in project robovm by robovm.
the class LocatorImplTest method testLocatorImpl.
public void testLocatorImpl() {
LocatorImpl l = new LocatorImpl();
assertEquals(null, l.getPublicId());
assertEquals(null, l.getSystemId());
assertEquals(0, l.getLineNumber());
assertEquals(0, l.getColumnNumber());
}
use of org.xml.sax.helpers.LocatorImpl in project robovm by robovm.
the class ParserAdapterTest method testSetDocumentLocator.
public void testSetDocumentLocator() {
Locator l = new LocatorImpl();
adapter.setDocumentLocator(l);
assertEquals(logger.size(), 1);
assertEquals("setDocumentLocator", logger.getMethod());
assertEquals(new Object[] { l }, logger.getArgs());
adapter.setDocumentLocator(null);
assertEquals(logger.size(), 2);
assertEquals("setDocumentLocator", logger.getMethod());
assertEquals(new Object[] { null }, logger.getArgs());
}
use of org.xml.sax.helpers.LocatorImpl in project robovm by robovm.
the class DocumentBuilderImpl method parse.
@Override
public Document parse(InputSource source) throws SAXException, IOException {
if (source == null) {
throw new IllegalArgumentException("source == null");
}
String namespaceURI = null;
String qualifiedName = null;
DocumentType doctype = null;
String inputEncoding = source.getEncoding();
String systemId = source.getSystemId();
DocumentImpl document = new DocumentImpl(dom, namespaceURI, qualifiedName, doctype, inputEncoding);
document.setDocumentURI(systemId);
KXmlParser parser = new KXmlParser();
try {
parser.keepNamespaceAttributes();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, namespaceAware);
if (source.getByteStream() != null) {
parser.setInput(source.getByteStream(), inputEncoding);
} else if (source.getCharacterStream() != null) {
parser.setInput(source.getCharacterStream());
} else if (systemId != null) {
URL url = new URL(systemId);
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
// TODO: if null, extract the inputEncoding from the Content-Type header?
parser.setInput(urlConnection.getInputStream(), inputEncoding);
} else {
throw new SAXParseException("InputSource needs a stream, reader or URI", null);
}
if (parser.nextToken() == XmlPullParser.END_DOCUMENT) {
throw new SAXParseException("Unexpected end of document", null);
}
parse(parser, document, document, XmlPullParser.END_DOCUMENT);
parser.require(XmlPullParser.END_DOCUMENT, null, null);
} catch (XmlPullParserException ex) {
if (ex.getDetail() instanceof IOException) {
throw (IOException) ex.getDetail();
}
if (ex.getDetail() instanceof RuntimeException) {
throw (RuntimeException) ex.getDetail();
}
LocatorImpl locator = new LocatorImpl();
locator.setPublicId(source.getPublicId());
locator.setSystemId(systemId);
locator.setLineNumber(ex.getLineNumber());
locator.setColumnNumber(ex.getColumnNumber());
SAXParseException newEx = new SAXParseException(ex.getMessage(), locator);
if (errorHandler != null) {
errorHandler.error(newEx);
}
throw newEx;
} finally {
IoUtils.closeQuietly(parser);
}
return document;
}
use of org.xml.sax.helpers.LocatorImpl in project robovm by robovm.
the class SAXParseExceptionTest method testSAXParseException_String_Locator.
public void testSAXParseException_String_Locator() {
LocatorImpl l = new LocatorImpl();
l.setPublicId(PUB);
l.setSystemId(SYS);
l.setLineNumber(ROW);
l.setColumnNumber(COL);
// Ordinary case
SAXParseException e = new SAXParseException(ERR, l);
assertEquals(ERR, e.getMessage());
assertNull(e.getException());
assertEquals(PUB, e.getPublicId());
assertEquals(SYS, e.getSystemId());
assertEquals(ROW, e.getLineNumber());
assertEquals(COL, e.getColumnNumber());
// No message
e = new SAXParseException(null, l);
assertNull(e.getMessage());
assertNull(e.getException());
assertEquals(PUB, e.getPublicId());
assertEquals(SYS, e.getSystemId());
assertEquals(ROW, e.getLineNumber());
assertEquals(COL, e.getColumnNumber());
// No locator
e = new SAXParseException(ERR, null);
assertEquals(ERR, e.getMessage());
assertNull(e.getException());
assertNull(e.getPublicId());
assertNull(e.getSystemId());
assertEquals(-1, e.getLineNumber());
assertEquals(-1, e.getColumnNumber());
}
Aggregations