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.transform;
9   
10  import java.util.ArrayList;
11  import java.util.List;
12  
13  /***
14   * Interface with common constants used in the transformation process.
15   * 
16   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
17   */
18  public interface TransformationConstants {
19      public static final List EMTPTY_ARRAY_LIST = new ArrayList();
20  
21      // prefixes
22      public static final String ASPECTWERKZ_PREFIX = "___AW_";
23      public static final String WRAPPER_METHOD_PREFIX = ASPECTWERKZ_PREFIX  + "access$";//CAUTION: keep AW prefix or fix the AspectRegistry etc
24      public static final String DELIMITER = "$_AW_$";
25      public static final String STATIC_CLASS_FIELD = ASPECTWERKZ_PREFIX + "clazz";
26      public static final String JOIN_POINT_PREFIX = ASPECTWERKZ_PREFIX + "jp";
27      public static final String ORIGINAL_METHOD_PREFIX = WRAPPER_METHOD_PREFIX + "original" + DELIMITER;
28      public static final String INVOKE_WRAPPER_METHOD_PREFIX = "INVOKE" + DELIMITER;
29      public static final String PUTFIELD_WRAPPER_METHOD_PREFIX = "PUTFIELD" + DELIMITER;
30      public static final String GETFIELD_WRAPPER_METHOD_PREFIX = "GETFIELD" + DELIMITER;
31      public static final String JOIN_POINT_BASE_CLASS_SUFFIX = ASPECTWERKZ_PREFIX + "JoinPointBase";
32      public static final String JOIN_POINT_CLASS_SUFFIX = ASPECTWERKZ_PREFIX + "JoinPoint";
33  
34      // internal fields
35      public static final String CROSS_CUTTING_INFO_CLASS_FIELD = ASPECTWERKZ_PREFIX + "crossCuttingInfo";
36      public static final String JOIN_POINT_MANAGER_FIELD = ASPECTWERKZ_PREFIX + "joinPointManager";
37      public static final String ASPECT_MANAGER_FIELD = ASPECTWERKZ_PREFIX + "aspectManager";
38      public static final String TARGET_CLASS_FIELD_NAME = "___AW_Clazz";
39      public static final String EMPTY_WRAPPER_ATTRIBUTE = ASPECTWERKZ_PREFIX + "empty";
40  
41      // internal methods
42      public static final String JOIN_POINTS_INIT_METHOD = ORIGINAL_METHOD_PREFIX + "initJoinPoints";
43      public static final String LOAD_JOIN_POINT_METHOD_SIGNATURE = "(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V";
44      public static final String FOR_NAME_METHOD_SIGNATURE = "(Ljava/lang/String;)Ljava/lang/Class;";
45      public static final String INIT_JOIN_POINTS_METHOD_NAME = WRAPPER_METHOD_PREFIX + DELIMITER + "initJoinPoints";
46      public static final String JOIN_POINT_INDEX_ATTRIBUTE = ASPECTWERKZ_PREFIX + "JoinPointIndex";
47      public static final String INLINED_JOIN_POINT_MANAGER_CLASS_NAME = "org/codehaus/aspectwerkz/joinpoint/management/InlinedJoinPointManager";
48   
49      // method and class names
50      public static final String INIT_METHOD_NAME = "<init>";
51      public static final String CLINIT_METHOD_NAME = "<clinit>";
52      public static final String CLASS_LOADER_REFLECT_CLASS_NAME = "java.lang.ClassLoader";
53      public static final String DEFINE_CLASS_METHOD_NAME = "defineClass";
54      public static final String INVOKE_METHOD_NAME = "invoke";
55      public static final String FOR_NAME_METHOD_NAME = "forName";
56      public static final String LOAD_JOIN_POINT_METHOD_NAME = "loadJoinPoint";
57      public static final String GET_JOIN_POINT_MANAGER = "getJoinPointManager";
58      public static final String GET_ASPECT_MANAGER_METHOD = "getAspectManager";
59      public static final String GET_SYSTEM_METHOD = "getSystem";
60      public static final String GET_MIXIN_METHOD = "getMixin";
61      public static final String INVOKE_MIXIN_METHOD = "invokeMixin";
62      public static final String SERIAL_VERSION_UID_FIELD = "serialVersionUID";
63      public static final String PROCEED_WITH_EXECUTION_JOIN_POINT_METHOD = "proceedWithExecutionJoinPoint";
64      public static final String PROCEED_WITH_CALL_JOIN_POINT_METHOD = "proceedWithCallJoinPoint";
65      public static final String PROCEED_WITH_SET_JOIN_POINT_METHOD = "proceedWithSetJoinPoint";
66      public static final String PROCEED_WITH_GET_JOIN_POINT_METHOD = "proceedWithGetJoinPoint";
67      public static final String PROCEED_WITH_HANDLER_JOIN_POINT_METHOD = "proceedWithHandlerJoinPoint";
68      public static final String HANDLER_JOIN_POINT_EXECUTION_METHOD = "proceed";
69      public static final String GET_JOIN_POINTS_EXECUTION_METHOD = "getJoinPoints";
70      public static final String UUID_EXECUTION_METHOD = "generate";
71      public static final String CLASS_LOOKUP_METHOD = "class$";
72      public static final String ASPECT_MANAGER_CLASS = "org.codehaus.aspectwerkz.aspect.management.AspectManager";
73      public static final String JOIN_POINT_MANAGER_CLASS = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager";
74      public static final String JOIN_POINT_TYPE_METHOD_EXECUTION = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.METHOD_EXECUTION";
75      public static final String JOIN_POINT_TYPE_METHOD_CALL = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.METHOD_CALL";
76      public static final String JOIN_POINT_TYPE_CONSTRUCTOR_EXECUTION = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.CONSTRUCTOR_EXECUTION";
77      public static final String JOIN_POINT_TYPE_CONSTRUCTOR_CALL = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.CONSTRUCTOR_CALL";
78      public static final String JOIN_POINT_TYPE_FIELD_SET = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.FIELD_SET";
79      public static final String JOIN_POINT_TYPE_FIELD_GET = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.FIELD_GET";
80      public static final String JOIN_POINT_TYPE_HANDLER = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.HANDLER";
81      public static final String JOIN_POINT_TYPE_STATIC_INITALIZATION = "org.codehaus.aspectwerkz.joinpoint.management.JoinPointType.STATIC_INITIALIZATION";
82      public static final String SYSTEM_CLASS = "org.codehaus.aspectwerkz.RuntimeSystem";
83      public static final String SYSTEM_LOADER_CLASS = "org.codehaus.aspectwerkz.SystemLoader";
84      public static final String MIXIN_CLASS = "org.codehaus.aspectwerkz.Mixin";
85      public static final String THREAD_LOCAL_CLASS = "org.codehaus.aspectwerkz.util.SerializableThreadLocal";
86      public static final String WEAK_REFERENCE_CLASS = "java.lang.ref.WeakReference";
87      public static final String CROSS_CUTTING_INFO_CLASS = "org.codehaus.aspectwerkz.CrossCuttingInfo";
88  
89      // java types and signatures
90      public static final String SHORT_CLASS_NAME = "java/lang/Short";
91      public static final String INTEGER_CLASS_NAME = "java/lang/Integer";
92      public static final String LONG_CLASS_NAME = "java/lang/Long";
93      public static final String FLOAT_CLASS_NAME = "java/lang/Float";
94      public static final String DOUBLE_CLASS_NAME = "java/lang/Double";
95      public static final String BYTE_CLASS_NAME = "java/lang/Byte";
96      public static final String BOOLEAN_CLASS_NAME = "java/lang/Boolean";
97      public static final String CHARACTER_CLASS_NAME = "java/lang/Character";
98      public static final String OBJECT_CLASS_SIGNATURE = "Ljava/lang/Object;";
99      public static final String OBJECT_CLASS_NAME = "java/lang/Object";
100     public static final String CLASS_CLASS_SIGNATURE = "Ljava/lang/Class;";
101     public static final String CLASS_CLASS = "java/lang/Class";
102     public static final String THROWABLE_CLASS_NAME = "java/lang/Throwable";
103     public static final String SHORT_VALUE_METHOD_NAME = "shortValue";
104     public static final String INT_VALUE_METHOD_NAME = "intValue";
105     public static final String LONG_VALUE_METHOD_NAME = "longValue";
106     public static final String FLOAT_VALUE_METHOD_NAME = "floatValue";
107     public static final String DOUBLE_VALUE_METHOD_NAME = "doubleValue";
108     public static final String BYTE_VALUE_METHOD_NAME = "byteValue";
109     public static final String BOOLEAN_VALUE_METHOD_NAME = "booleanValue";
110     public static final String CHAR_VALUE_METHOD_NAME = "charValue";
111     public static final String CHAR_VALUE_METHOD_SIGNATURE = "()C";
112     public static final String BOOLEAN_VALUE_METHOD_SIGNATURE = "()Z";
113     public static final String BYTE_VALUE_METHOD_SIGNATURE = "()B";
114     public static final String DOUBLE_VALUE_METHOD_SIGNATURE = "()D";
115     public static final String FLOAT_VALUE_METHOD_SIGNATURE = "()F";
116     public static final String LONG_VALUE_METHOD_SIGNATURE = "()J";
117     public static final String INT_VALUE_METHOD_SIGNATURE = "()I";
118     public static final String SHORT_VALUE_METHOD_SIGNATURE = "()S";
119     public static final String SHORT_CLASS_INIT_METHOD_SIGNATURE = "(S)V";
120     public static final String INTEGER_CLASS_INIT_METHOD_SIGNATURE = "(I)V";
121     public static final String LONG_CLASS_INIT_METHOD_SIGNATURE = "(J)V";
122     public static final String FLOAT_CLASS_INIT_METHOD_SIGNATURE = "(F)V";
123     public static final String DOUBLE_CLASS_INIT_METHOD_SIGNATURE = "(D)V";
124     public static final String BYTE_CLASS_INIT_METHOD_SIGNATURE = "(B)V";
125     public static final String BOOLEAN_CLASS_INIT_METHOD_SIGNATURE = "(Z)V";
126     public static final String CHARACTER_CLASS_INIT_METHOD_SIGNATURE = "(C)V";
127     public static final String NO_PARAMS_RETURN_VOID_METHOD_SIGNATURE = "()V";
128     public static final String L = "L";
129     public static final String I = "I";
130     public static final String SEMICOLON = ";";
131 
132     public static final byte EMPTY_WRAPPER_ATTRIBUTE_VALUE_EMPTY = Byte.MIN_VALUE;
133     public static final byte EMPTY_WRAPPER_ATTRIBUTE_VALUE_NOTEMPTY = Byte.MAX_VALUE;
134 }