/*
* This file is part of the OSMembrane project.
* More informations under www.osmembrane.de
*
* The project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0.
* for more details about the license see http://www.osmembrane.de/license/
*
* Source: $HeadURL$ ($Revision$)
* Last changed: $Date$
*/
package de.osmembrane.exceptions;
/**
* The general exception class that can be invoked anywhere within the program
* and is understood by the Controller to fit unto the View's error handling
* dialog.
*
* If you mean to create a separate ControlledException, please specify an
* exception message so users can figure out, what has happened.
*
* @author tobias_kuhn
*
*/
public class ControlledException extends Exception {
private static final long serialVersionUID = -5332782603656616624L;
private Object causingObject;
private ExceptionSeverity severity;
/**
* Creates a new ControlledException.
*
* @param causingObject
* the object which caused the exception
* @param severity
* the severity of the exception
* @param message
* the message associated with the exception
*/
public ControlledException(Object causingObject,
ExceptionSeverity severity, String message) {
super(message);
this.causingObject = causingObject;
this.severity = severity;
}
/**
* Creates a new ControlledException.
*
* @param causingObject
* the object which caused the exception
* @param severity
* the severity of the exception
* @param cause
* the cause associated with the exception
* @deprecated When only using the cause, it is not useful to create a
* separate ControlledException. Instead, <b>please give a
* describing message</b>!
*/
@Deprecated
public ControlledException(Object causingObject,
ExceptionSeverity severity, Throwable cause) {
super(cause);
this.causingObject = causingObject;
this.severity = severity;
}
/**
* Creates a new ControlledException.
*
* @param causingObject
* the object which caused the exception
* @param severity
* the severity of the exception
* @param cause
* the cause associated with the exception
* @param message
* the message associated with the exception
*/
public ControlledException(Object causingObject,
ExceptionSeverity severity, Throwable cause, String message) {
super(message, cause);
this.causingObject = causingObject;
this.severity = severity;
}
/**
* @return the causingClass
*/
public Object getCausingObject() {
return causingObject;
}
/**
* @return the kind
*/
public ExceptionSeverity getKind() {
return severity;
}
}