/*
* Copyright (c) 2001-2004 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
* See W3C License http://www.w3.org/Consortium/Legal/ for more details.
*/
package org.w3c.domts;
/**
* This exception represents a mismatch between the
* requirements of the test (for example, entity preserving)
* and the capabilities of the parser under test.
* @author Curt Arnold
*/
public class DOMTestIncompatibleException
extends Exception {
private final String msg;
private DOMTestIncompatibleException(String msg) {
this.msg = msg;
}
/**
* Constructor from a ParserConfigurationException
* or reflection exception
*/
public DOMTestIncompatibleException(Throwable ex,
DocumentBuilderSetting setting) {
if (ex != null) {
msg = ex.toString();
}
else {
if (setting != null) {
msg = setting.toString();
}
else {
msg = super.toString();
}
}
}
public static DOMTestIncompatibleException incompatibleFeature(String feature,
String version) {
StringBuffer buf = new StringBuffer(
"Implementation does not support feature \"");
buf.append(feature);
buf.append("\" version=\"");
buf.append(version);
buf.append("\".");
return new DOMTestIncompatibleException(buf.toString());
}
public static DOMTestIncompatibleException incompatibleLoad(String href,
String contentType) {
StringBuffer buf = new StringBuffer(
"Document is incompatible with content type, \"");
buf.append(href);
buf.append("\" not available for =\"");
buf.append(contentType);
buf.append("\".");
return new DOMTestIncompatibleException(buf.toString());
}
public String toString() {
return msg;
}
}