View Javadoc

    1   /***************************************************************************************
    2    * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved.                 *
    3    * http://aspectwerkz.codehaus.org                                                    *
    4    * ---------------------------------------------------------------------------------- *
    5    * The software in this package is published under the terms of the LGPL license      *
    6    * a copy of which has been included with this distribution in the license.txt file.  *
    7    **************************************************************************************/
    8   package org.codehaus.aspectwerkz.aspect.management;
    9
    10  import java.io.PrintStream;
    11  import java.io.PrintWriter;
    12
    13  /***
    14   * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a>
    15   */
    16  public class NoAspectBoundException extends RuntimeException {
    17
    18      private String m_message;
    19      private Throwable m_throwable;
    20
    21      public NoAspectBoundException(String message, String aspectName) {
    22          m_message = message + " - " + aspectName;
    23      }
    24
    25      public NoAspectBoundException(Throwable t, String aspectName) {
    26          m_throwable = t;
    27          m_message = t.getMessage();
    28      }
    29
    30      public String getMessage() {
    31          StringBuffer sb = new StringBuffer("NoAspectBound: ");
    32          sb.append(m_message);
    33          return sb.toString();
    34      }
    35
    36      /***
    37       * Returns the original exception.
    38       *
    39       * @return the cause
    40       */
    41      public Throwable getCause() {
    42          if (m_throwable != null) {
    43              return m_throwable;
    44          } else {
    45              return super.getCause();
    46          }
    47      }
    48
    49      /***
    50       * Prints the wrapped exception A its backtrace to the standard error stream.
    51       */
    52      public void printStackTrace() {
    53          if (m_throwable != null) {
    54              m_throwable.printStackTrace();
    55          } else {
    56              super.printStackTrace();
    57          }
    58      }
    59
    60      /***
    61       * Prints the wrapped excpetion A its backtrace to the specified print stream.
    62       *
    63       * @param s the print stream
    64       */
    65      public void printStackTrace(final PrintStream s) {
    66          if (m_throwable != null) {
    67              m_throwable.printStackTrace(s);
    68          } else {
    69              super.printStackTrace(s);
    70          }
    71      }
    72
    73      /***
    74       * Prints the wrapped exception A its backtrace to the specified print writer.
    75       *
    76       * @param s the print writer
    77       */
    78      public void printStackTrace(final PrintWriter s) {
    79          if (m_throwable != null) {
    80              m_throwable.printStackTrace(s);
    81          } else {
    82              super.printStackTrace(s);
    83          }
    84      }
    85
    86  }