001: //
002: // This file is part of the prose package.
003: //
004: // The contents of this file are subject to the Mozilla Public License
005: // Version 1.1 (the "License"); you may not use this file except in
006: // compliance with the License. You may obtain a copy of the License at
007: // http://www.mozilla.org/MPL/
008: //
009: // Software distributed under the License is distributed on an "AS IS" basis,
010: // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
011: // for the specific language governing rights and limitations under the
012: // License.
013: //
014: // The Original Code is prose.
015: //
016: // The Initial Developer of the Original Code is Andrei Popovici.
017: // The code has been extended by Angela Nicoara.
018: // All Rights Reserved.
019: //
020: // Contributor(s):
021: // $Id: JoinPointKinds.java,v 1.2 2004/05/12 09:41:54 anicoara Exp $
022: // =====================================================================
023: //
024: // (history at end)
025: //
026:
027: package ch.ethz.jvmai;
028:
029: /**
030: * Class JoinPointKinds contains the masks and kinds for join-points.
031: * The mapping should be as follows:
032: * <table>
033: *
034: * <tr><td>KIND_CODE_JP</td><td>MASK_CODE_JP</td></tr>
035: * <tr><td>KIND_METHOD_ENTRY_JP</td><td>MASK_CODE_JP | MASK_METHOD_ENTRY_JP</td></tr>
036: * <tr><td>MASK_METHOD_EXIT_JP</td><td>MASK_CODE_JP | MASK_METHOD_EXIT_JP </td></tr>
037: * <tr><td>KIND_FIELD_ACCESS_JP</td><td>MASK_CODE_JP | MASK_FIELD_JP | MASK_FIELD_ACCESS_JP </td></tr>
038: * <tr><td>KIND_FIELD_MODIFICATION_JP</td><td>MASK_CODE_JP |MASK_FIELD_JP | MASK_FIELD_MODIFICATION_JP</td></tr>
039: * <tr><td>KIND_EXCEPTION_THROW_ARGS_JP</td><td>MASK_CODE_JP | MASK_EXCEPTION_THROW_ARGS_JP</td></tr>
040: * <tr><td>KIND_EXCEPTION_CATCH_ARGS_JP</td><td>MASK_CODE_JP | MASK_EXCEPTION_CATCH_ARGS_JP</td></tr>
041: *
042: * </table>
043: *
044: * @version $Revision: 1.2 $
045: * @author Andrei Popovici
046: * @author Angela Nicoara
047: * @author Gerald Linhofer
048: */
049: public interface JoinPointKinds {
050: public static int MASK_UNKNOWN_JP = 0x00;
051: public static int MASK_CODE_JP = 0x01;
052: public static int MASK_METHOD_ENTRY_JP = 0x02;
053: public static int MASK_METHOD_EXIT_JP = 0x04;
054: public static int MASK_FIELD_JP = 0x08;
055: public static int MASK_FIELD_ACCESS_JP = 0x10;
056: public static int MASK_FIELD_MODIFICATION_JP = 0x20;
057: public static int MASK_EXCEPTION_THROW_ARGS_JP = 0x40;
058: public static int MASK_EXCEPTION_CATCH_ARGS_JP = 0x80;
059: public static int MASK_METHOD_REDEFINE_JP = 0x100;
060: public static int MASK_CONSTRUCTOR_JP = 0x200;
061: public static int MASK_ALL_JP = 0xFFF;
062:
063: public static String KIND_UNKNOWN_JP = "UnknownJoinPointKind";
064: public static String KIND_CODE_JP = "CodeJoinPoint";
065: public static String KIND_METHOD_ENTRY_JP = "MethodEntryJoinPoint";
066: public static String KIND_METHOD_EXIT_JP = "MethodExitJoinPoint";
067: public static String KIND_METHOD_REDEFINE_JP = "MethodRedefineJoinPoint";
068: public static String KIND_FIELD_ACCESS_JP = "FieldAccessJoinPoint";
069: public static String KIND_FIELD_MODIFICATION_JP = "FieldModificationJoinPoint";
070: public static String KIND_EXCEPTION_THROW_ARGS_JP = "ExceptionJoinPoint";
071: public static String KIND_EXCEPTION_CATCH_ARGS_JP = "ExceptionCatchJoinPoint";
072: public static String KIND_CONSTRUCTOR_JP = "ConstructorJoinPoint";
073: }
074:
075: //======================================================================
076: //
077: // $Log: JoinPointKinds.java,v $
078: // Revision 1.2 2004/05/12 09:41:54 anicoara
079: // Remove the README.RVM file
080: //
081: // Revision 1.1.1.1 2003/07/02 15:30:50 apopovic
082: // Imported from ETH Zurich
083: //
084: // Revision 1.3 2003/07/02 12:42:50 anicoara
085: // Added CatchJoinPoint Functionality (Requests, Join-Points, Filters, CatchCuts, Tests)
086: //
087: // Revision 1.2 2003/05/06 15:51:25 popovici
088: // Mozilla-ification
089: //
090: // Revision 1.1 2003/05/05 14:02:22 popovici
091: // renaming from runes to prose
092: //
093: // Revision 1.1 2003/04/17 08:47:09 popovici
094: // Important functionality additions
095: // - Cflow specializers
096: // - Restructuring of the MethodCut, SetCut, ThrowCut, and GetCut (they are much smaller)
097: // - Transactional capabilities
098: // - Total refactoring of Specializer evaluation, which permits fine-grained distinction
099: // between static and dynamic specializers.
100: // - Functionality pulled up in abstract classes
101: // - Uniformization of advice methods patterns and names
102: //
|