KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > proguard > classfile > ClassConstants


1 /*
2  * ProGuard -- shrinking, optimization, obfuscation, and preverification
3  * of Java bytecode.
4  *
5  * Copyright (c) 2002-2003 Eric Lafortune (eric@graphics.cornell.edu)
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21 package proguard.classfile;
22
23 /**
24  * Constants used in representing a Java class (*.class).
25  *
26  * @author Eric Lafortune
27  */

28 public interface ClassConstants
29 {
30     public static final String JavaDoc CLASS_FILE_EXTENSION = ".class";
31
32     public static final int MAGIC = 0xCAFEBABE;
33
34     public static final int INTERNAL_CLASS_VERSION_1_0_MAJOR = 45;
35     public static final int INTERNAL_CLASS_VERSION_1_0_MINOR = 3;
36     public static final int INTERNAL_CLASS_VERSION_1_2_MAJOR = 46;
37     public static final int INTERNAL_CLASS_VERSION_1_2_MINOR = 0;
38     public static final int INTERNAL_CLASS_VERSION_1_3_MAJOR = 47;
39     public static final int INTERNAL_CLASS_VERSION_1_3_MINOR = 0;
40     public static final int INTERNAL_CLASS_VERSION_1_4_MAJOR = 48;
41     public static final int INTERNAL_CLASS_VERSION_1_4_MINOR = 0;
42     public static final int INTERNAL_CLASS_VERSION_1_5_MAJOR = 49;
43     public static final int INTERNAL_CLASS_VERSION_1_5_MINOR = 0;
44     public static final int INTERNAL_CLASS_VERSION_1_6_MAJOR = 50;
45     public static final int INTERNAL_CLASS_VERSION_1_6_MINOR = 0;
46
47     public static final int INTERNAL_CLASS_VERSION_1_0 = (INTERNAL_CLASS_VERSION_1_0_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_0_MINOR;
48     public static final int INTERNAL_CLASS_VERSION_1_2 = (INTERNAL_CLASS_VERSION_1_2_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_2_MINOR;
49     public static final int INTERNAL_CLASS_VERSION_1_3 = (INTERNAL_CLASS_VERSION_1_3_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_3_MINOR;
50     public static final int INTERNAL_CLASS_VERSION_1_4 = (INTERNAL_CLASS_VERSION_1_4_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_4_MINOR;
51     public static final int INTERNAL_CLASS_VERSION_1_5 = (INTERNAL_CLASS_VERSION_1_5_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_5_MINOR;
52     public static final int INTERNAL_CLASS_VERSION_1_6 = (INTERNAL_CLASS_VERSION_1_6_MAJOR << 16) | INTERNAL_CLASS_VERSION_1_6_MINOR;
53
54     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_0 = "1.0";
55     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_1 = "1.1";
56     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_2 = "1.2";
57     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_3 = "1.3";
58     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_4 = "1.4";
59     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_5 = "1.5";
60     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_6 = "1.6";
61     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_5_ALIAS = "5";
62     public static final String JavaDoc EXTERNAL_CLASS_VERSION_1_6_ALIAS = "6";
63
64     public static final int INTERNAL_ACC_PUBLIC = 0x0001;
65     public static final int INTERNAL_ACC_PRIVATE = 0x0002;
66     public static final int INTERNAL_ACC_PROTECTED = 0x0004;
67     public static final int INTERNAL_ACC_STATIC = 0x0008;
68     public static final int INTERNAL_ACC_FINAL = 0x0010;
69     public static final int INTERNAL_ACC_SUPER = 0x0020;
70     public static final int INTERNAL_ACC_SYNCHRONIZED = 0x0020;
71     public static final int INTERNAL_ACC_VOLATILE = 0x0040;
72     public static final int INTERNAL_ACC_TRANSIENT = 0x0080;
73     public static final int INTERNAL_ACC_BRIDGE = 0x0040;
74     public static final int INTERNAL_ACC_VARARGS = 0x0080;
75     public static final int INTERNAL_ACC_NATIVE = 0x0100;
76     public static final int INTERNAL_ACC_INTERFACE = 0x0200;
77     public static final int INTERNAL_ACC_ABSTRACT = 0x0400;
78     public static final int INTERNAL_ACC_STRICT = 0x0800;
79     public static final int INTERNAL_ACC_SYNTHETIC = 0x1000;
80     public static final int INTERNAL_ACC_ANNOTATTION = 0x2000;
81     public static final int INTERNAL_ACC_ENUM = 0x4000;
82
83     public static final int VALID_INTERNAL_ACC_CLASS = INTERNAL_ACC_PUBLIC |
84                                                         INTERNAL_ACC_FINAL |
85                                                         INTERNAL_ACC_SUPER |
86                                                         INTERNAL_ACC_INTERFACE |
87                                                         INTERNAL_ACC_ABSTRACT |
88                                                         INTERNAL_ACC_SYNTHETIC |
89                                                         INTERNAL_ACC_ANNOTATTION |
90                                                         INTERNAL_ACC_ENUM;
91     public static final int VALID_INTERNAL_ACC_FIELD = INTERNAL_ACC_PUBLIC |
92                                                         INTERNAL_ACC_PRIVATE |
93                                                         INTERNAL_ACC_PROTECTED |
94                                                         INTERNAL_ACC_STATIC |
95                                                         INTERNAL_ACC_FINAL |
96                                                         INTERNAL_ACC_VOLATILE |
97                                                         INTERNAL_ACC_TRANSIENT |
98                                                         INTERNAL_ACC_SYNTHETIC |
99                                                         INTERNAL_ACC_ENUM;
100     public static final int VALID_INTERNAL_ACC_METHOD = INTERNAL_ACC_PUBLIC |
101                                                         INTERNAL_ACC_PRIVATE |
102                                                         INTERNAL_ACC_PROTECTED |
103                                                         INTERNAL_ACC_STATIC |
104                                                         INTERNAL_ACC_FINAL |
105                                                         INTERNAL_ACC_SYNCHRONIZED |
106                                                         INTERNAL_ACC_BRIDGE |
107                                                         INTERNAL_ACC_VARARGS |
108                                                         INTERNAL_ACC_NATIVE |
109                                                         INTERNAL_ACC_ABSTRACT |
110                                                         INTERNAL_ACC_STRICT |
111                                                         INTERNAL_ACC_SYNTHETIC;
112
113     public static final String JavaDoc EXTERNAL_ACC_PUBLIC = "public";
114     public static final String JavaDoc EXTERNAL_ACC_PRIVATE = "private";
115     public static final String JavaDoc EXTERNAL_ACC_PROTECTED = "protected";
116     public static final String JavaDoc EXTERNAL_ACC_STATIC = "static";
117     public static final String JavaDoc EXTERNAL_ACC_FINAL = "final";
118     public static final String JavaDoc EXTERNAL_ACC_SUPER = "super";
119     public static final String JavaDoc EXTERNAL_ACC_SYNCHRONIZED = "synchronized";
120     public static final String JavaDoc EXTERNAL_ACC_VOLATILE = "volatile";
121     public static final String JavaDoc EXTERNAL_ACC_TRANSIENT = "transient";
122     public static final String JavaDoc EXTERNAL_ACC_NATIVE = "native";
123     public static final String JavaDoc EXTERNAL_ACC_INTERFACE = "interface";
124     public static final String JavaDoc EXTERNAL_ACC_ABSTRACT = "abstract";
125     public static final String JavaDoc EXTERNAL_ACC_STRICT = "strictfp";
126
127     public static final int CONSTANT_Utf8 = 1;
128     public static final int CONSTANT_Integer = 3;
129     public static final int CONSTANT_Float = 4;
130     public static final int CONSTANT_Long = 5;
131     public static final int CONSTANT_Double = 6;
132     public static final int CONSTANT_Class = 7;
133     public static final int CONSTANT_String = 8;
134     public static final int CONSTANT_Fieldref = 9;
135     public static final int CONSTANT_Methodref = 10;
136     public static final int CONSTANT_InterfaceMethodref = 11;
137     public static final int CONSTANT_NameAndType = 12;
138
139     public static final String JavaDoc ATTR_SourceFile = "SourceFile";
140     public static final String JavaDoc ATTR_SourceDir = "SourceDir";
141     public static final String JavaDoc ATTR_InnerClasses = "InnerClasses";
142     public static final String JavaDoc ATTR_EnclosingMethod = "EnclosingMethod";
143     public static final String JavaDoc ATTR_Deprecated = "Deprecated";
144     public static final String JavaDoc ATTR_Synthetic = "Synthetic";
145     public static final String JavaDoc ATTR_Signature = "Signature";
146     public static final String JavaDoc ATTR_ConstantValue = "ConstantValue";
147     public static final String JavaDoc ATTR_Exceptions = "Exceptions";
148     public static final String JavaDoc ATTR_Code = "Code";
149     public static final String JavaDoc ATTR_StackMap = "StackMap";
150     public static final String JavaDoc ATTR_StackMapTable = "StackMapTable";
151     public static final String JavaDoc ATTR_LineNumberTable = "LineNumberTable";
152     public static final String JavaDoc ATTR_LocalVariableTable = "LocalVariableTable";
153     public static final String JavaDoc ATTR_LocalVariableTypeTable = "LocalVariableTypeTable";
154     public static final String JavaDoc ATTR_RuntimeVisibleAnnotations = "RuntimeVisibleAnnotations";
155     public static final String JavaDoc ATTR_RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
156     public static final String JavaDoc ATTR_RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
157     public static final String JavaDoc ATTR_RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
158     public static final String JavaDoc ATTR_AnnotationDefault = "AnnotationDefault";
159
160     public static final int ELEMENT_VALUE_STRING_CONSTANT = 's';
161     public static final int ELEMENT_VALUE_ENUM_CONSTANT = 'e';
162     public static final int ELEMENT_VALUE_CLASS = 'c';
163     public static final int ELEMENT_VALUE_ANNOTATION = '@';
164     public static final int ELEMENT_VALUE_ARRAY = '[';
165
166     public static final char EXTERNAL_PACKAGE_SEPARATOR = '.';
167     public static final char INTERNAL_PACKAGE_SEPARATOR = '/';
168     public static final char INNER_CLASS_SEPARATOR = '$';
169     public static final char SPECIAL_CLASS_CHARACTER = '-';
170     public static final char SPECIAL_MEMBER_SEPARATOR = '$';
171
172     public static final char EXTERNAL_METHOD_ARGUMENTS_OPEN = '(';
173     public static final char EXTERNAL_METHOD_ARGUMENTS_CLOSE = ')';
174     public static final char EXTERNAL_METHOD_ARGUMENTS_SEPARATOR = ',';
175
176     public static final char INTERNAL_METHOD_ARGUMENTS_OPEN = '(';
177     public static final char INTERNAL_METHOD_ARGUMENTS_CLOSE = ')';
178
179     public static final String JavaDoc INTERNAL_PACKAGE_JAVA_LANG = "java/lang/";
180     public static final String JavaDoc INTERNAL_NAME_JAVA_LANG_OBJECT = "java/lang/Object";
181     public static final String JavaDoc INTERNAL_TYPE_JAVA_LANG_OBJECT = "Ljava/lang/Object;";
182     public static final String JavaDoc INTERNAL_NAME_JAVA_LANG_CLONEABLE = "java/lang/Cloneable";
183     public static final String JavaDoc INTERNAL_NAME_JAVA_LANG_THROWABLE = "java/lang/Throwable";
184     public static final String JavaDoc INTERNAL_NAME_JAVA_LANG_CLASS = "java/lang/Class";
185     public static final String JavaDoc INTERNAL_NAME_JAVA_LANG_STRING = "java/lang/String";
186     public static final String JavaDoc INTERNAL_NAME_JAVA_IO_SERIALIZABLE = "java/io/Serializable";
187
188     public static final String JavaDoc INTERNAL_METHOD_NAME_INIT = "<init>";
189     public static final String JavaDoc INTERNAL_METHOD_TYPE_INIT = "()V";
190     public static final String JavaDoc INTERNAL_METHOD_NAME_CLINIT = "<clinit>";
191     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLINIT = "()V";
192
193     public static final String JavaDoc INTERNAL_CLASS_NAME_JAVA_LANG_CLASS = "java/lang/Class";
194
195     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_FOR_NAME = "forName";
196     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_FOR_NAME = "(Ljava/lang/String;)Ljava/lang/Class;";
197     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_GET_COMPONENT_TYPE = "getComponentType";
198     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_GET_COMPONENT_TYPE = "()Ljava/lang/Class;";
199     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_GET_FIELD = "getField";
200     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_GET_FIELD = "(Ljava/lang/String;)Ljava/lang/reflect/Field;";
201     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_GET_DECLARED_FIELD = "getDeclaredField";
202     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_GET_DECLARED_FIELD = "(Ljava/lang/String;)Ljava/lang/reflect/Field;";
203     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_GET_METHOD = "getMethod";
204     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_GET_METHOD = "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;";
205     public static final String JavaDoc INTERNAL_METHOD_NAME_CLASS_GET_DECLARED_METHOD = "getDeclaredMethod";
206     public static final String JavaDoc INTERNAL_METHOD_TYPE_CLASS_GET_DECLARED_METHOD = "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;";
207
208     public static final String JavaDoc INTERNAL_METHOD_NAME_DOT_CLASS_JAVAC = "class$";
209     public static final String JavaDoc INTERNAL_METHOD_TYPE_DOT_CLASS_JAVAC = "(Ljava/lang/String;)Ljava/lang/Class;";
210     public static final String JavaDoc INTERNAL_METHOD_NAME_DOT_CLASS_JIKES = "class";
211     public static final String JavaDoc INTERNAL_METHOD_TYPE_DOT_CLASS_JIKES = "(Ljava/lang/String;Z)Ljava/lang/Class;";
212
213     public static final String JavaDoc INTERNAL_METHOD_NAME_NEW_INSTANCE = "newInstance";
214     public static final String JavaDoc INTERNAL_METHOD_TYPE_NEW_INSTANCE = "()Ljava/lang/Object;";
215
216     public static final char INTERNAL_TYPE_VOID = 'V';
217     public static final char INTERNAL_TYPE_BOOLEAN = 'Z';
218     public static final char INTERNAL_TYPE_BYTE = 'B';
219     public static final char INTERNAL_TYPE_CHAR = 'C';
220     public static final char INTERNAL_TYPE_SHORT = 'S';
221     public static final char INTERNAL_TYPE_INT = 'I';
222     public static final char INTERNAL_TYPE_LONG = 'J';
223     public static final char INTERNAL_TYPE_FLOAT = 'F';
224     public static final char INTERNAL_TYPE_DOUBLE = 'D';
225     public static final char INTERNAL_TYPE_CLASS_START = 'L';
226     public static final char INTERNAL_TYPE_CLASS_END = ';';
227     public static final char INTERNAL_TYPE_ARRAY = '[';
228     public static final char INTERNAL_TYPE_GENERIC_START = '<';
229     public static final char INTERNAL_TYPE_GENERIC_END = '>';
230
231     public static final String JavaDoc EXTERNAL_TYPE_JAVA_LANG_OBJECT = "java.lang.Object";
232     public static final String JavaDoc EXTERNAL_PACKAGE_JAVA_LANG = "java.lang.";
233
234     public static final String JavaDoc EXTERNAL_TYPE_VOID = "void";
235     public static final String JavaDoc EXTERNAL_TYPE_BOOLEAN = "boolean";
236     public static final String JavaDoc EXTERNAL_TYPE_BYTE = "byte";
237     public static final String JavaDoc EXTERNAL_TYPE_CHAR = "char";
238     public static final String JavaDoc EXTERNAL_TYPE_SHORT = "short";
239     public static final String JavaDoc EXTERNAL_TYPE_INT = "int";
240     public static final String JavaDoc EXTERNAL_TYPE_FLOAT = "float";
241     public static final String JavaDoc EXTERNAL_TYPE_LONG = "long";
242     public static final String JavaDoc EXTERNAL_TYPE_DOUBLE = "double";
243     public static final String JavaDoc EXTERNAL_TYPE_ARRAY = "[]";
244
245     public static final int TYPICAL_CONSTANT_POOL_SIZE = 256;
246     public static final int TYPICAL_FIELD_COUNT = 64;
247     public static final int TYPICAL_METHOD_COUNT = 64;
248     public static final int TYPICAL_CODE_LENGTH = 1024;
249     public static final int TYPICAL_EXCEPTION_TABLE_LENGTH = 16;
250     public static final int TYPICAL_VARIABLES_SIZE = 64;
251     public static final int TYPICAL_STACK_SIZE = 16;
252 }
253
Popular Tags