01: //
02: // This file is part of the prose package.
03: //
04: // The contents of this file are subject to the Mozilla Public License
05: // Version 1.1 (the "License"); you may not use this file except in
06: // compliance with the License. You may obtain a copy of the License at
07: // http://www.mozilla.org/MPL/
08: //
09: // Software distributed under the License is distributed on an "AS IS" basis,
10: // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11: // for the specific language governing rights and limitations under the
12: // License.
13: //
14: // The Original Code is prose.
15: //
16: // The Initial Developer of the Original Code is Andrei Popovici. Portions
17: // created by Andrei Popovici are Copyright (C) 2002 Andrei Popovici.
18: // All Rights Reserved.
19: //
20: // Contributor(s):
21: // $Id: ExceptionJoinPoint.java,v 1.1.1.1 2003/07/02 15:30:50 apopovic Exp $
22: // =====================================================================
23: //
24: // (history at end)
25: //
26:
27: package ch.ethz.jvmai;
28:
29: /**
30: * Abstract class ExceptionJoinPoint represents a
31: * joinpoint denoting the throwing of an exception.
32: *
33: * @version $Revision: 1.1.1.1 $
34: * @author Philippe Schoch
35: */
36: public interface ExceptionJoinPoint extends CodeJoinPoint {
37:
38: public static String KIND = JoinPointKinds.KIND_EXCEPTION_THROW_ARGS_JP;
39:
40: /**
41: * Specifies the exception object that has been thrown.
42: */
43: public Throwable getException();
44:
45: /** True if there is a handler.
46: */
47: public boolean hasHandler();
48:
49: /** Return the class of the current thread that has a handler for
50: * this exception.
51: */
52: public Class handlerClass();
53:
54: }
55:
56: //======================================================================
57: //
58: // $Log: ExceptionJoinPoint.java,v $
59: // Revision 1.1.1.1 2003/07/02 15:30:50 apopovic
60: // Imported from ETH Zurich
61: //
62: // Revision 1.2 2003/05/06 15:51:24 popovici
63: // Mozilla-ification
64: //
65: // Revision 1.1 2003/05/05 14:02:23 popovici
66: // renaming from runes to prose
67: //
68: // Revision 1.3 2003/04/17 08:47:07 popovici
69: // Important functionality additions
70: // - Cflow specializers
71: // - Restructuring of the MethodCut, SetCut, ThrowCut, and GetCut (they are much smaller)
72: // - Transactional capabilities
73: // - Total refactoring of Specializer evaluation, which permits fine-grained distinction
74: // between static and dynamic specializers.
75: // - Functionality pulled up in abstract classes
76: // - Uniformization of advice methods patterns and names
77: //
78: // Revision 1.2 2003/03/04 11:27:01 popovici
79: // Important refactorization step (march):
80: // - removal of 'JoinPointEvents'; JoinPoints now have the same function as events
81: // - reimplementation of the JVMAIDebuggerAspectInterface (better performance, coding conventions, removal of ProseVM
82: // structures
83: //
84: // Revision 1.1 2002/10/17 12:23:41 pschoch
85: // Added throw capabability to JVMAI
86: //
|