001 package org.relaxng.datatype;
002
003 /**
004 * Signals Datatype related exceptions.
005 *
006 * @author <a href="mailto:jjc@jclark.com">James Clark</a>
007 * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
008 */
009 public class DatatypeException extends Exception {
010
011 public DatatypeException( int index, String msg ) {
012 super(msg);
013 this.index = index;
014 }
015 public DatatypeException( String msg ) {
016 this(UNKNOWN,msg);
017 }
018 /**
019 * A constructor for those datatype libraries which don't support any
020 * diagnostic information at all.
021 */
022 public DatatypeException() {
023 this(UNKNOWN,null);
024 }
025
026
027 private final int index;
028
029 public static final int UNKNOWN = -1;
030
031 /**
032 * Gets the index of the content where the error occured.
033 * UNKNOWN can be returned to indicate that no index information
034 * is available.
035 */
036 public int getIndex() {
037 return index;
038 }
039 }