001: /*
002: * The contents of this file are subject to the Sapient Public License
003: * Version 1.0 (the "License"); you may not use this file except in compliance
004: * with the License. You may obtain a copy of the License at
005: * http://carbon.sf.net/License.html.
006: *
007: * Software distributed under the License is distributed on an "AS IS" basis,
008: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
009: * the specific language governing rights and limitations under the License.
010: *
011: * The Original Code is The Carbon Component Framework.
012: *
013: * The Initial Developer of the Original Code is Sapient Corporation
014: *
015: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
016: */
017:
018: package org.sape.carbon.core.config;
019:
020: import org.sape.carbon.core.util.classify.SeverityEnum;
021:
022: /**
023: * <P>This exception is utilized to relate that a supplied configuration
024: * is invalid or could not be found. This exception should be utilized
025: * for individual properties that are invalid or for properties
026: * that in relation to eachother are invalid.</P>
027: *
028: * Copyright 2001 Sapient
029: * @since carbon 1.0
030: * @author Greg Hinkle, December 2001
031: * @version $Revision: 1.15 $($Author: dvoet $ / $Date: 2003/05/05 21:21:16 $)
032: */
033: public class InvalidConfigurationException extends
034: ConfigurationRuntimeException {
035:
036: /**
037: * Constructs this exception with the supplied source, document
038: * and property
039: * @param sourceClass the source class where the property
040: * retrieval failed
041: * @param documentName the name of the configuration document which was
042: * supposed to have a valid configuration property
043: * @param propertyName the name of the property that was invalid
044: */
045: public InvalidConfigurationException(Class sourceClass,
046: String documentName, String propertyName) {
047: super (sourceClass, "Configuration property [" + propertyName
048: + "] not valid in document [" + documentName + "]");
049:
050: }
051:
052: /**
053: * Constructs an invalid configuration exception
054: * @param sourceClass the source class of the exception
055: * @param documentName the name of the document that contained the
056: * configuration
057: * @param propertyName the name of the property that contained invalid data
058: * @param message a message describing why this configuration is not valid
059: */
060: public InvalidConfigurationException(Class sourceClass,
061: String documentName, String propertyName, String message) {
062: super (sourceClass, message + "; Configuration property ["
063: + propertyName + "] in document [" + documentName + "]");
064:
065: }
066:
067: /**
068: * Constructs an invalid configuration exception
069: * @param sourceClass the source class of the exception
070: * @param documentName the name of the document that contained the
071: * configuration
072: * @param propertyName the name of the property that contained the value
073: * @param cause the exception that caused this configuration to be invalid
074: */
075: public InvalidConfigurationException(Class sourceClass,
076: String documentName, String propertyName, Throwable cause) {
077: super (sourceClass, "Configuration property [" + propertyName
078: + "] not valid in document [" + documentName + "]",
079: cause);
080:
081: }
082:
083: /**
084: * Constructs an invalid configuration exception
085: * @param sourceClass the source class of the exception
086: * @param documentName the name of the document that contained the
087: * configuration
088: * @param propertyName the name of the property that contained the value
089: * @param message a message describing why this configuration is not valid
090: * @param cause the exception that caused this configuration to be invalid
091: */
092: public InvalidConfigurationException(Class sourceClass,
093: String documentName, String propertyName, String message,
094: Throwable cause) {
095: super (sourceClass,
096: message + "; Configuration property [" + propertyName
097: + "] in document [" + documentName + "]", cause);
098:
099: }
100:
101: /**
102: * @deprecated Utilize one of the more specific constructors
103: *
104: * @param message string information relating to this exception
105: */
106: public InvalidConfigurationException(String message) {
107: super (InvalidConfigurationException.class, message);
108: }
109:
110: /**
111: * @deprecated Utilize one of the more specific constructors
112: *
113: * @param message string information relating to this exception
114: * @param cause a throwable that can be considered the cause
115: * of the current exception (used in levelizing exceptions)
116: */
117: public InvalidConfigurationException(String message, Throwable cause) {
118: super (InvalidConfigurationException.class, message, cause);
119: }
120:
121: /**
122: * Retrieves the severity of this exception. It should be noted that
123: * invalid configurations are a technical failure and not an exposed
124: * business service and therefore have a relatively low severity of
125: * info. If this exception causes a buisnes failure higher up the
126: * stack, that exception should have a more severe exception severity.
127: *
128: * @return this exception's severity
129: */
130: public SeverityEnum getSeverity() {
131: return SeverityEnum.INFO;
132: }
133: }
|