| /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under |
| * the terms of the Common Public License v1.0 which accompanies this distribution, |
| * and is available at http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * $Id: IThrowableWrapper.java,v 1.1.1.1 2004/05/09 16:57:58 vlad_r Exp $ |
| */ |
| package com.vladium.util.exception; |
| |
| import java.io.PrintStream; |
| import java.io.PrintWriter; |
| |
| // ---------------------------------------------------------------------------- |
| /** |
| * TODO: javadoc |
| * |
| * Any exception that wraps around another exception and wishes to be fully |
| * inspectable by {@link ExceptionCommon} should implement this interface. |
| * Note that JDK 1.4+ obsoletes the need for an explicit interface like this, |
| * although the implementation in {@link ExceptionCommon} is upwards compatible |
| * with it. |
| * |
| * @author Vlad Roubtsov, (C) 2002 |
| */ |
| interface IThrowableWrapper |
| { |
| // public: ................................................................ |
| |
| /** |
| * Gets the Throwable being wrapped. This method signature is the same as |
| * Throwable.getCause() in J2SE 1.4. |
| * |
| * @return Throwable being wrapped by this object [can be null]. |
| */ |
| Throwable getCause (); |
| |
| /** |
| * Every exception hierarchy implementing this interface must ensure that |
| * this method delegates to super.printStackTrace(pw) where 'super' is the |
| * first superclass not implementing IThrowableWrapper. This is used by |
| * {@link ExceptionCommon} to avoid infinite |
| * recursion and is not meant to be called by other classes. |
| */ |
| void __printStackTrace (PrintWriter pw); |
| |
| /** |
| * Every exception hierarchy implementing this interface must ensure that |
| * this method delegates to super.printStackTrace(ps) where 'super' is the |
| * first superclass not implementing IThrowableWrapper. This is used by |
| * {@link ExceptionCommon} to avoid infinite |
| * recursion and is not meant to be called by other classes. |
| */ |
| void __printStackTrace (PrintStream ps); |
| |
| } // end of interface |
| // ---------------------------------------------------------------------------- |