Home | History | Annotate | Download | only in domts
      1 /*
      2  * Copyright (c) 2001-2004 World Wide Web Consortium,
      3  * (Massachusetts Institute of Technology, Institut National de
      4  * Recherche en Informatique et en Automatique, Keio University). All
      5  * Rights Reserved. This program is distributed under the W3C's Software
      6  * Intellectual Property License. This program is distributed in the
      7  * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
      8  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
      9  * PURPOSE.
     10  * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
     11  */
     12 
     13 
     14 package org.w3c.domts;
     15 
     16 
     17 /**
     18  * This exception represents a mismatch between the
     19  * requirements of the test (for example, entity preserving)
     20  * and the capabilities of the parser under test.
     21  * @author Curt Arnold
     22  */
     23 public class DOMTestIncompatibleException
     24     extends Exception {
     25   private final String msg;
     26 
     27   private DOMTestIncompatibleException(String msg) {
     28     this.msg = msg;
     29   }
     30 
     31   /**
     32    *  Constructor from a ParserConfigurationException
     33    *  or reflection exception
     34    */
     35   public DOMTestIncompatibleException(Throwable ex,
     36                                       DocumentBuilderSetting setting) {
     37     if (ex != null) {
     38       msg = ex.toString();
     39     }
     40     else {
     41       if (setting != null) {
     42         msg = setting.toString();
     43       }
     44       else {
     45         msg = super.toString();
     46       }
     47     }
     48   }
     49 
     50   public static DOMTestIncompatibleException incompatibleFeature(String feature,
     51       String version) {
     52     StringBuffer buf = new StringBuffer(
     53         "Implementation does not support feature \"");
     54     buf.append(feature);
     55     buf.append("\" version=\"");
     56     buf.append(version);
     57     buf.append("\".");
     58     return new DOMTestIncompatibleException(buf.toString());
     59   }
     60 
     61   public static DOMTestIncompatibleException incompatibleLoad(String href,
     62       String contentType) {
     63     StringBuffer buf = new StringBuffer(
     64         "Document is incompatible with content type, \"");
     65     buf.append(href);
     66     buf.append("\" not available for =\"");
     67     buf.append(contentType);
     68     buf.append("\".");
     69     return new DOMTestIncompatibleException(buf.toString());
     70   }
     71 
     72   public String toString() {
     73     return msg;
     74   }
     75 
     76 }
     77