KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > j2ee > blueprints > processmanager > transitions > TransitionException


1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistribution in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Sun Microsystems, Inc. or the names of
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * This software is provided "AS IS," without a warranty of any
21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32 *
33 * You acknowledge that Software is not designed, licensed or intended
34 * for use in the design, construction, operation or maintenance of
35 * any nuclear facility.
36 */

37
38 package com.sun.j2ee.blueprints.processmanager.transitions;
39
40
41 /**
42  * This class implements an exception which can wrapped a lower-level exception.
43  *
44  */

45 public class TransitionException extends Exception JavaDoc {
46   private Exception JavaDoc exception;
47
48   /**
49    * Creates a new TransitionException wrapping another exception, and with a detail message.
50    * @param message the detail message.
51    * @param exception the wrapped exception.
52    */

53   public TransitionException(String JavaDoc message, Exception JavaDoc exception) {
54     super(message);
55     this.exception = exception;
56     return;
57   }
58
59   /**
60    * Creates a TransitionException with the specified detail message.
61    * @param message the detail message.
62    */

63   public TransitionException(String JavaDoc message) {
64     this(message, null);
65     return;
66   }
67
68   /**
69    * Creates a new TransitionException wrapping another exception, and with no detail message.
70    * @param exception the wrapped exception.
71    */

72   public TransitionException(Exception JavaDoc exception) {
73     this(null, exception);
74     return;
75   }
76
77   /**
78    * Gets the wrapped exception.
79    *
80    * @return the wrapped exception.
81    */

82   public Exception JavaDoc getException() {
83     return exception;
84   }
85
86   /**
87    * Retrieves (recursively) the root cause exception.
88    *
89    * @return the root cause exception.
90    */

91   public Exception JavaDoc getRootCause() {
92     if (exception instanceof TransitionException) {
93       return ((TransitionException) exception).getRootCause();
94     }
95     return exception == null ? this : exception;
96   }
97
98   public String JavaDoc toString() {
99     if (exception instanceof TransitionException) {
100       return ((TransitionException) exception).toString();
101     }
102     return exception == null ? super.toString() : exception.toString();
103   }
104 }
105
Popular Tags