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  }