blob: 4c9c382321113bee57c0fc0aa963559a74a2e9ef [file] [log] [blame]
/*****************************************************************************
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License Version
* 1.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is available at http://www.sun.com/
*
* The Original Code is the CVS Client Library.
* The Initial Developer of the Original Code is Robert Greig.
* Portions created by Robert Greig are Copyright (C) 2000.
* All Rights Reserved.
*
* Contributor(s): Robert Greig.
*****************************************************************************/
package org.netbeans.lib.cvsclient.command;
import java.io.PrintStream;
import java.io.PrintWriter;
/**
* This exception is thrown when an error occurs while executing a command.
* It is nearly always a container for another exception.
* @author Robert Greig
*/
public class CommandException extends Exception {
// Fields =================================================================
private Exception underlyingException;
private String localizedMessage;
private String message;
// Setup ==================================================================
public CommandException(Exception underlyingException, String localizedMessage) {
this.underlyingException = underlyingException;
this.localizedMessage = localizedMessage;
}
protected CommandException(Exception underlyingException) {
super(underlyingException.getLocalizedMessage());
this.underlyingException = underlyingException;
}
protected CommandException(String message) {
super(message);
this.message = message;
this.localizedMessage = message;
}
// Implemented ============================================================
public final Exception getUnderlyingException() {
return underlyingException;
}
public final void printStackTrace() {
if (underlyingException != null) {
underlyingException.printStackTrace();
}
else {
super.printStackTrace();
}
}
public final void printStackTrace(PrintStream stream) {
if (underlyingException != null) {
underlyingException.printStackTrace(stream);
}
else {
super.printStackTrace(stream);
}
}
public final void printStackTrace(PrintWriter writer) {
if (underlyingException != null) {
underlyingException.printStackTrace(writer);
}
else {
super.printStackTrace(writer);
}
}
public final String getLocalizedMessage() {
if (localizedMessage != null) return localizedMessage;
if (message != null) return message;
return super.getMessage();
}
public final String getMessage() {
return message;
}
}