001: /*
002: * @(#)FactoryConfigurationError.java 1.6 01/12/03
003: *
004: * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
005: * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
006: */
007:
008: package javax.xml.parsers;
009:
010: /**
011: * Thrown when a problem with configuration with the Parser Factories
012: * exists. This error will typically be thrown when the class of a
013: * parser factory specified in the system properties cannot be found
014: * or instantiated.
015: *
016: * @since JAXP 1.0
017: * @version 1.0
018: */
019:
020: public class FactoryConfigurationError extends Error {
021:
022: private Exception exception;
023:
024: /**
025: * Create a new <code>FactoryConfigurationError</code> with no
026: * detail mesage.
027: */
028:
029: public FactoryConfigurationError() {
030: super ();
031: this .exception = null;
032: }
033:
034: /**
035: * Create a new <code>FactoryConfigurationError</code> with
036: * the <code>String </code> specified as an error message.
037: *
038: * @param msg The error message for the exception.
039: */
040:
041: public FactoryConfigurationError(String msg) {
042: super (msg);
043: this .exception = null;
044: }
045:
046: /**
047: * Create a new <code>FactoryConfigurationError</code> with a
048: * given <code>Exception</code> base cause of the error.
049: *
050: * @param e The exception to be encapsulated in a
051: * FactoryConfigurationError.
052: */
053:
054: public FactoryConfigurationError(Exception e) {
055: super (e.toString());
056: this .exception = e;
057: }
058:
059: /**
060: * Create a new <code>FactoryConfigurationError</code> with the
061: * given <code>Exception</code> base cause and detail message.
062: *
063: * @param e The exception to be encapsulated in a
064: * FactoryConfigurationError
065: * @param msg The detail message.
066: * @param e The exception to be wrapped in a FactoryConfigurationError
067: */
068:
069: public FactoryConfigurationError(Exception e, String msg) {
070: super (msg);
071: this .exception = e;
072: }
073:
074: /**
075: * Return the message (if any) for this error . If there is no
076: * message for the exception and there is an encapsulated
077: * exception then the message of that exception, if it exists will be
078: * returned. Else the name of the encapsulated exception will be
079: * returned.
080: *
081: * @return The error message.
082: */
083:
084: public String getMessage() {
085: String message = super .getMessage();
086:
087: if (message == null && exception != null) {
088: return exception.getMessage();
089: }
090:
091: return message;
092: }
093:
094: /**
095: * Return the actual exception (if any) that caused this exception to
096: * be raised.
097: *
098: * @return The encapsulated exception, or null if there is none.
099: */
100:
101: public Exception getException() {
102: return exception;
103: }
104: }
|