All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.xfire.XFireRuntimeException Maven / Gradle / Ivy

There is a newer version: 1.2.6
Show newest version
package org.codehaus.xfire;

import java.io.PrintStream;
import java.io.PrintWriter;

/**
 * Used for internal XFire exceptions when a fault shouldn't be returned to the service invoker.
 *
 * @author Dan Diephouse
 * @since Feb 14, 2004
 */
public class XFireRuntimeException
        extends RuntimeException
{
    private Throwable cause;
    private String message;
    
    /**
     * Constructs a new xfire runtime exception with the specified detail message.
     *
     * @param message the detail message.
     */
    public XFireRuntimeException(String message)
    {
        super(message);
        this.message = message;
    }

    /**
     * Constructs a new xfire runtime exception with the specified detail message and cause.
     *
     * @param message the detail message.
     * @param cause   the cause.
     */
    public XFireRuntimeException(String message, Throwable cause)
    {
        super(message);
        this.message = message;
        this.cause = cause;
    }


    /**
     * Returns the cause of this throwable or null if the  cause is nonexistent or unknown.
     *
     * @return the nested cause.
     */
    public Throwable getCause()
    {
        return (this.cause == this ? null : this.cause);
    }

    /**
     * Return the detail message, including the message from the {@link #getCause() nested exception} if there is one.
     *
     * @return the detail message.
     */
    public String getMessage()
    {
        if (this.cause == null || this.cause == this)
        {
            return message;
        }
        else
        {
            return message + ". Nested exception is " + this.cause.getClass().getName() +
                    ": " + this.cause.getMessage();
        }
    }

    public String getActualMessage()
    {
        return message;
    }
    
    /**
     * Prints this throwable and its backtrace to the specified print stream.
     *
     * @param s PrintStream to use for output
     */
    public void printStackTrace(PrintStream s)
    {
        if (this.cause == null || this.cause == this)
        {
            super.printStackTrace(s);
        }
        else
        {
            s.println(this);
            this.cause.printStackTrace(s);
        }
    }

    /**
     * Prints this throwable and its backtrace to the specified print writer.
     *
     * @param w PrintWriter to use for output
     */
    public void printStackTrace(PrintWriter w)
    {
        if (this.cause == null || this.cause == this)
        {
            super.printStackTrace(w);
        }
        else
        {
            w.println(this);
            this.cause.printStackTrace(w);
        }
    }

    public void prepend(String message)
    {
        if(this.message != null)
        {
            this.message = message + ": " + this.message;
        }
        else
        {
            this.message = message;
        }
    }
    
    public void setMessage(String s)
    {
        message = s;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy