KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ch > ethz > jvmai > JoinPointKinds


1 //
2
// This file is part of the prose package.
3
//
4
// The contents of this file are subject to the Mozilla Public License
5
// Version 1.1 (the "License"); you may not use this file except in
6
// compliance with the License. You may obtain a copy of the License at
7
// http://www.mozilla.org/MPL/
8
//
9
// 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: JoinPointKinds.java,v 1.2 2004/05/12 09:41:54 anicoara Exp $
22
// =====================================================================
23
//
24
// (history at end)
25
//
26

27 package ch.ethz.jvmai;
28
29 // used packages
30
import java.util.*;
31 import java.io.*;
32
33 /**
34  * Class JoinPointKinds contains the masks and kinds for join-points.
35  * The mapping should be as follows:
36  * <table>
37  *
38  * <tr><td>KIND_CODE_JP</td><td>MASK_CODE_JP</td></tr>
39  * <tr><td>KIND_METHOD_ENTRY_JP</td><td>MASK_CODE_JP | MASK_METHOD_ENTRY_JP</td></tr>
40  * <tr><td>MASK_METHOD_EXIT_JP</td><td>MASK_CODE_JP | MASK_METHOD_EXIT_JP </td></tr>
41  * <tr><td>KIND_FIELD_ACCESS_JP</td><td>MASK_CODE_JP | MASK_FIELD_JP | MASK_FIELD_ACCESS_JP </td></tr>
42  * <tr><td>KIND_FIELD_MODIFICATION_JP</td><td>MASK_CODE_JP |MASK_FIELD_JP | MASK_FIELD_MODIFICATION_JP</td></tr>
43  * <tr><td>KIND_EXCEPTION_THROW_ARGS_JP</td><td>MASK_CODE_JP | MASK_EXCEPTION_THROW_ARGS_JP</td></tr>
44  * <tr><td>KIND_EXCEPTION_CATCH_ARGS_JP</td><td>MASK_CODE_JP | MASK_EXCEPTION_CATCH_ARGS_JP</td></tr>
45  *
46  * </table>
47  *
48  * @version $Revision: 1.2 $
49  * @author Andrei Popovici
50  */

51 public
52 interface JoinPointKinds
53 {
54   public static int MASK_UNKNOWN_JP = 0x00;
55   public static int MASK_CODE_JP = 0x01;
56   public static int MASK_METHOD_ENTRY_JP = 0x02;
57   public static int MASK_METHOD_EXIT_JP = 0x04;
58   public static int MASK_FIELD_JP = 0x08;
59   public static int MASK_FIELD_ACCESS_JP = 0x10;
60   public static int MASK_FIELD_MODIFICATION_JP = 0x20;
61   public static int MASK_EXCEPTION_THROW_ARGS_JP = 0x40;
62   public static int MASK_EXCEPTION_CATCH_ARGS_JP = 0x80;
63   public static int MASK_METHOD_REDEFINE_JP = 0x100;
64   public static int MASK_ALL_JP = 0xFFF;
65
66
67   public static String JavaDoc KIND_UNKNOWN_JP = "UnknownJoinPointKind";
68   public static String JavaDoc KIND_CODE_JP = "CodeJoinPoint";
69   public static String JavaDoc KIND_METHOD_ENTRY_JP = "MethodEntryJoinPoint";
70   public static String JavaDoc KIND_METHOD_EXIT_JP = "MethodExitJoinPoint";
71   public static String JavaDoc KIND_METHOD_REDEFINE_JP = "MethodRedefineJoinPoint";
72   public static String JavaDoc KIND_FIELD_ACCESS_JP = "FieldAccessJoinPoint";
73   public static String JavaDoc KIND_FIELD_MODIFICATION_JP = "FieldModificationJoinPoint";
74   public static String JavaDoc KIND_EXCEPTION_THROW_ARGS_JP = "ExceptionJoinPoint";
75   public static String JavaDoc KIND_EXCEPTION_CATCH_ARGS_JP = "ExceptionCatchJoinPoint";
76 }
77
78
79 //======================================================================
80
//
81
// $Log: JoinPointKinds.java,v $
82
// Revision 1.2 2004/05/12 09:41:54 anicoara
83
// Remove the README.RVM file
84
//
85
// Revision 1.1.1.1 2003/07/02 15:30:50 apopovic
86
// Imported from ETH Zurich
87
//
88
// Revision 1.3 2003/07/02 12:42:50 anicoara
89
// Added CatchJoinPoint Functionality (Requests, Join-Points, Filters, CatchCuts, Tests)
90
//
91
// Revision 1.2 2003/05/06 15:51:25 popovici
92
// Mozilla-ification
93
//
94
// Revision 1.1 2003/05/05 14:02:22 popovici
95
// renaming from runes to prose
96
//
97
// Revision 1.1 2003/04/17 08:47:09 popovici
98
// Important functionality additions
99
// - Cflow specializers
100
// - Restructuring of the MethodCut, SetCut, ThrowCut, and GetCut (they are much smaller)
101
// - Transactional capabilities
102
// - Total refactoring of Specializer evaluation, which permits fine-grained distinction
103
// between static and dynamic specializers.
104
// - Functionality pulled up in abstract classes
105
// - Uniformization of advice methods patterns and names
106
//
107
Popular Tags