001: /*
002: * Copyright (c) 1999 World Wide Web Consortium
003: * (Massachusetts Institute of Technology, Institut National de Recherche
004: * en Informatique et en Automatique, Keio University).
005: * All Rights Reserved. http://www.w3.org/Consortium/Legal/
006: *
007: * The original version of this interface comes from SAX :
008: * http://www.megginson.com/SAX/
009: *
010: * $Id$
011: */
012: package org.w3c.css.sac;
013:
014: /**
015: * @version $Revision$
016: * @author Philippe Le Hegaret
017: */
018: public class CSSException extends RuntimeException {
019:
020: protected String s;
021:
022: /**
023: * this error is unspecified.
024: */
025: public static short SAC_UNSPECIFIED_ERR = 0;
026:
027: /**
028: * If the operation is not supported
029: */
030: public static short SAC_NOT_SUPPORTED_ERR = 1;
031:
032: /**
033: * If an invalid or illegal string is specified
034: */
035: public static short SAC_SYNTAX_ERR = 2;
036:
037: /**
038: * The internal exception.
039: */
040: protected Exception e;
041:
042: protected short code;
043:
044: /**
045: * Creates a new CSSException
046: */
047: public CSSException() {
048: }
049:
050: /**
051: * Creates a new CSSException
052: */
053: public CSSException(String s) {
054: this .code = SAC_UNSPECIFIED_ERR;
055: this .s = s;
056: }
057:
058: /**
059: * Creates a new CSSException with an embeded exception.
060: * @param a the embeded exception.
061: */
062: public CSSException(Exception e) {
063: this .code = SAC_UNSPECIFIED_ERR;
064: this .e = e;
065: }
066:
067: /**
068: * Creates a new CSSException with a specific code.
069: * @param a the embeded exception.
070: */
071: public CSSException(short code) {
072: this .code = code;
073: }
074:
075: /**
076: * Creates a new CSSException with an embeded exception and a specified
077: * message.
078: * @param code the specified code.
079: * @param e the embeded exception.
080: */
081: public CSSException(short code, String s, Exception e) {
082: this .code = code;
083: this .s = s;
084: this .e = e;
085: }
086:
087: /**
088: * Returns the detail message of this throwable object.
089: *
090: * @return the detail message of this Throwable, or null if this Throwable
091: * does not have a detail message.
092: */
093: public String getMessage() {
094: if (s != null) {
095: return s;
096: } else if (e != null) {
097: return e.getMessage();
098: } else {
099: return null;
100: }
101: }
102:
103: /**
104: * returns the error code for this exception.
105: */
106: public short getCode() {
107: return code;
108: }
109:
110: /**
111: * Returns the internal exception if any, null otherwise.
112: */
113: public Exception getException() {
114: return e;
115: }
116:
117: }
|