blob: d96550d1d09dd6fd71120982a9e8e246ba4950ff [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Versant Corp.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Markus Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation
******************************************************************************/
package org.eclipse.ecf.core.util;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.internal.core.identity.Activator;
/**
* @since 3.0
*/
public class ECFRuntimeException extends RuntimeException {
private static final long serialVersionUID = 456677468837349011L;
/** Status object. */
private IStatus status;
public ECFRuntimeException() {
super();
}
/**
* @param message
* message associated with exception
*/
public ECFRuntimeException(String message) {
this(message, null);
}
/**
* @param cause
* the cause of the new exception
*/
public ECFRuntimeException(Throwable cause) {
this(cause.getMessage(), cause);
}
/**
* @param message
* @param cause
*/
public ECFRuntimeException(String message, Throwable cause) {
this(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, ((message == null) ? "" : message), cause)); //$NON-NLS-1$
}
/**
* Creates a new exception with the given status object. The message
* of the given status is used as the exception message.
*
* @param status the status object to be associated with this exception
*/
public ECFRuntimeException(IStatus status) {
super(status.getMessage());
this.status = status;
}
/**
* Returns the status object for this exception.
* <p>
* <b>IMPORTANT:</b><br>
* The result must NOT be used to log a <code>CoreException</code>
* (e.g., using <code>yourPlugin.getLog().log(status);</code>),
* since that code pattern hides the original stacktrace.
* Instead, create a new {@link Status} with your plug-in ID and
* this <code>CoreException</code>, and log that new status.
* </p>
*
* @return a status object
*/
public IStatus getStatus() {
return status;
}
}