package org.exolab.castor.core.exceptions; import java.io.PrintStream; import java.io.PrintWriter; public final class CastorIllegalStateException extends IllegalStateException { /** SerialVersionUID */ private static final long serialVersionUID = 2351884252990815335L; /** The cause for this exception. */ private Throwable _cause; public CastorIllegalStateException() { super(); } public CastorIllegalStateException(final String message) { super(message); } public CastorIllegalStateException(final Throwable cause) { super(); _cause = cause; } public CastorIllegalStateException(final String message, final Throwable cause) { super(message); _cause = cause; } /** * Match the JDK 1.4 Throwable version of getCause() on JDK<1.4 systems. * * @return The throwable cause of this exception. */ public Throwable getCause() { return _cause; } /** * Print a stack trace to stderr. */ public void printStackTrace() { // Print the stack trace for this exception. super.printStackTrace(); if (_cause != null) { System.err.print("Caused by: "); _cause.printStackTrace(); } } /** * Print a stack trace to the specified PrintStream. * * @param s The PrintStream to print a stack trace to. */ public void printStackTrace(final PrintStream s) { // Print the stack trace for this exception. super.printStackTrace(s); if (_cause != null) { s.print("Caused by: "); _cause.printStackTrace(s); } } /** * Print a stack trace to the specified PrintWriter. * * @param w The PrintWriter to print a stack trace to. */ public void printStackTrace(final PrintWriter w) { // Print the stack trace for this exception. super.printStackTrace(w); if (_cause != null) { w.print("Caused by: "); _cause.printStackTrace(w); } } }