Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/techtrader/modules/tools/bytecode/Constants.java


1   package com.techtrader.modules.tools.bytecode;
2   
3   
4   /**
5    *  Interface to track constants used in bytecode.  Entities can access these
6    *  constants using the static <code>Constants.</code> field prefix, 
7    *  or implement this interface themselves to conveniently import the 
8    *  constants into their own namespace.
9    *
10   *  @author    Abe White
11   */
12  public interface Constants
13  {
14    // class magic number
15    public static final int VALID_MAGIC      = 0xcafebabe;
16  
17    // access constants for classes, fields, methods
18    public static final int ACCESS_PUBLIC     = 0x0001;
19    public static final int ACCESS_PRIVATE    = 0x0002;
20    public static final int ACCESS_PROTECTED  = 0x0004;
21    public static final int ACCESS_STATIC    = 0x0008;
22    public static final int ACCESS_FINAL     = 0x0010;
23    public static final int ACCESS_SUPER     = 0x0020;
24    public static final int ACCESS_SYNCHRONIZED = 0x0020;
25    public static final int ACCESS_VOLATILE   = 0x0040;
26    public static final int ACCESS_TRANSIENT   = 0x0080;
27    public static final int ACCESS_NATIVE    = 0x0100;
28    public static final int ACCESS_INTERFACE  = 0x0200;
29    public static final int ACCESS_ABSTRACT   = 0x0400;
30    public static final int ACCESS_STRICT     = 0x0800;
31  
32    // attribute types the compiler must support
33    public static final String ATTR_CODE    = "Code";
34    public static final String ATTR_CONST    = "ConstantValue";
35    public static final String ATTR_DEPRECATED  = "Deprecated";
36    public static final String ATTR_EXCEPTIONS  = "Exceptions";
37    public static final String ATTR_INNERCLASS  = "InnerClasses";
38    public static final String ATTR_LINENUMBERS  = "LineNumberTable";
39    public static final String ATTR_LOCALS    = "LocalVariableTable";
40    public static final String ATTR_SOURCE    = "SourceFile";
41    public static final String ATTR_SYNTHETIC  = "Synthetic";
42    public static final String ATTR_UNKNOWN    = "Unknown";
43  
44    // opcodes
45    public static final int NOP          = 0;
46    public static final int ACONST_NULL      = 1;
47    public static final int ICONST_M1      = 2;
48    public static final int ICONST_0      = 3;
49    public static final int ICONST_1      = 4;
50    public static final int ICONST_2      = 5;
51    public static final int ICONST_3      = 6;
52    public static final int ICONST_4      = 7;
53    public static final int ICONST_5      = 8;
54    public static final int LCONST_0      = 9;
55    public static final int LCONST_1      = 10;
56    public static final int FCONST_0      = 11;
57    public static final int FCONST_1      = 12;
58    public static final int FCONST_2      = 13;
59    public static final int DCONST_0      = 14;
60    public static final int DCONST_1      = 15;
61    public static final int BIPUSH        = 16;
62    public static final int SIPUSH        = 17;
63    public static final int LDC          = 18;
64    public static final int LDC_W        = 19;
65    public static final int LDC2_W        = 20;
66    public static final int ILOAD        = 21;
67    public static final int LLOAD        = 22;
68    public static final int FLOAD        = 23;
69    public static final int DLOAD        = 24;
70    public static final int ALOAD        = 25; 
71    public static final int ILOAD_0        = 26;
72    public static final int ILOAD_1        = 27;
73    public static final int ILOAD_2        = 28;
74    public static final int ILOAD_3        = 29;
75    public static final int LLOAD_0        = 30;
76    public static final int LLOAD_1        = 31;
77    public static final int LLOAD_2        = 32;
78    public static final int LLOAD_3        = 33;
79    public static final int FLOAD_0        = 34;
80    public static final int FLOAD_1        = 35;
81    public static final int FLOAD_2        = 36;
82    public static final int FLOAD_3        = 37;
83    public static final int DLOAD_0        = 38;
84    public static final int DLOAD_1        = 39;
85    public static final int DLOAD_2        = 40;
86    public static final int DLOAD_3        = 41;
87    public static final int ALOAD_0        = 42;
88    public static final int ALOAD_1        = 43;
89    public static final int ALOAD_2        = 44;
90    public static final int ALOAD_3        = 45;
91    public static final int IALOAD        = 46;
92    public static final int LALOAD        = 47;
93    public static final int FALOAD        = 48;
94    public static final int DALOAD        = 49;
95    public static final int AALOAD        = 50;
96    public static final int BALOAD        = 51;
97    public static final int CALOAD        = 52;
98    public static final int SALOAD        = 53;
99    public static final int ISTORE        = 54;
100   public static final int LSTORE        = 55;
101   public static final int FSTORE        = 56;
102   public static final int DSTORE        = 57;
103   public static final int ASTORE        = 58;
104   public static final int ISTORE_0      = 59;
105   public static final int ISTORE_1      = 60;
106   public static final int ISTORE_2      = 61;
107   public static final int ISTORE_3      = 62;
108   public static final int LSTORE_0      = 63;
109   public static final int LSTORE_1      = 64;
110   public static final int LSTORE_2      = 65;
111   public static final int LSTORE_3      = 66;
112   public static final int FSTORE_0      = 67;
113   public static final int FSTORE_1      = 68;
114   public static final int FSTORE_2      = 69;
115   public static final int FSTORE_3      = 70;
116   public static final int DSTORE_0      = 71;
117   public static final int DSTORE_1      = 72;
118   public static final int DSTORE_2      = 73;
119   public static final int DSTORE_3      = 74;
120   public static final int ASTORE_0      = 75;
121   public static final int ASTORE_1      = 76;
122   public static final int ASTORE_2      = 77;
123   public static final int ASTORE_3      = 78;
124   public static final int IASTORE        = 79;
125   public static final int LASTORE        = 80;
126   public static final int FASTORE        = 81;
127   public static final int DASTORE        = 82;
128   public static final int AASTORE        = 83;
129   public static final int BASTORE        = 84;
130   public static final int CASTORE        = 85;
131   public static final int SASTORE        = 86;
132   public static final int POP          = 87;
133   public static final int POP2        = 88;
134   public static final int DUP          = 89;
135   public static final int DUP_X1        = 90;
136   public static final int DUP_X2        = 91;
137   public static final int DUP2        = 92;
138   public static final int DUP2_X1        = 93;
139   public static final int DUP2_X2        = 94;
140   public static final int SWAP        = 95;
141   public static final int IADD        = 96;
142   public static final int LADD        = 97;
143   public static final int FADD        = 98;
144   public static final int DADD        = 99;
145   public static final int ISUB        = 100;
146   public static final int LSUB        = 101;
147   public static final int FSUB        = 102;
148   public static final int DSUB        = 103;
149   public static final int IMUL        = 104;
150   public static final int LMUL        = 105;
151   public static final int FMUL        = 106;
152   public static final int DMUL        = 107;
153   public static final int IDIV        = 108;
154   public static final int LDIV        = 109;
155   public static final int FDIV        = 110;
156   public static final int DDIV        = 111;
157   public static final int IREM        = 112;
158   public static final int LREM        = 113;
159   public static final int FREM        = 114;
160   public static final int DREM        = 115;
161   public static final int INEG        = 116;
162   public static final int LNEG        = 117;
163   public static final int FNEG        = 118;
164   public static final int DNEG        = 119;
165   public static final int ISHL        = 120;
166   public static final int LSHL        = 121;
167   public static final int ISHR        = 122;
168   public static final int LSHR        = 123;
169   public static final int IUSHR        = 124;
170   public static final int LUSHR        = 125;
171   public static final int IAND        = 126;
172   public static final int LAND        = 127;
173   public static final int IOR          = 128;
174   public static final int LOR          = 129;
175   public static final int IXOR        = 130;
176   public static final int LXOR        = 131;
177   public static final int IINC        = 132;
178   public static final int I2L          = 133;
179   public static final int I2F          = 134;
180   public static final int I2D          = 135;
181   public static final int L2I          = 136;
182   public static final int L2F          = 137;
183   public static final int L2D          = 138;
184   public static final int F2I          = 139;
185   public static final int F2L          = 140;
186   public static final int F2D          = 141;
187   public static final int D2I          = 142;
188   public static final int D2L          = 143;
189   public static final int D2F          = 144;
190   public static final int I2B          = 145;
191   public static final int I2C          = 146;
192   public static final int I2S          = 147;
193   public static final int LCMP        = 148;
194   public static final int FCMPL        = 149;
195   public static final int FCMPG        = 150;
196   public static final int DCMPL        = 151;
197   public static final int DCMPG        = 152;
198   public static final int IF_EQ        = 153;
199   public static final int IF_NE        = 154;
200   public static final int IF_LT        = 155;
201   public static final int IF_GE        = 156;
202   public static final int IF_GT        = 157;
203   public static final int IF_LE        = 158;
204   public static final int IF_ICMPEQ      = 159;
205   public static final int IF_ICMPNE      = 160;
206   public static final int IF_ICMPLT      = 161;
207   public static final int IF_ICMPGE      = 162;
208   public static final int IF_ICMPGT      = 163;
209   public static final int IF_ICMPLE      = 164;
210   public static final int IF_ACMPEQ      = 165;
211   public static final int IF_ACMPNE      = 166;
212   public static final int GOTO        = 167;
213   public static final int JSR          = 168;
214   public static final int RET          = 169;
215   public static final int TABLESWITCH      = 170;
216   public static final int LOOKUPSWITCH    = 171;
217   public static final int IRETURN        = 172;
218   public static final int LRETURN        = 173;
219   public static final int FRETURN        = 174;
220   public static final int DRETURN        = 175;
221   public static final int ARETURN        = 176;
222   public static final int RETURN        = 177;
223   public static final int GETSTATIC      = 178;
224   public static final int PUTSTATIC      = 179;
225   public static final int GETFIELD      = 180;
226   public static final int PUTFIELD      = 181;
227   public static final int INVOKEVIRTUAL    = 182;
228   public static final int INVOKESPECIAL    = 183;
229   public static final int INVOKESTATIC    = 184;
230   public static final int INVOKEINTERFACE    = 185;
231   public static final int NEW          = 187;
232   public static final int NEWARRAY      = 188;
233   public static final int ANEWARRAY      = 189;
234   public static final int ARRAYLENGTH      = 190;
235   public static final int ATHROW        = 191;
236   public static final int CHECKCAST      = 192;
237   public static final int INSTANCEOF      = 193;
238   public static final int MONITORENTER    = 194;
239   public static final int MONITOREXIT      = 195;
240   public static final int WIDE        = 196;
241   public static final int MULTIANEWARRAY    = 197;
242   public static final int IF_NULL        = 198;
243   public static final int IF_NONNULL      = 199;
244   public static final int GOTO_W        = 200;
245   public static final int JSR_W        = 201;
246 
247   // array types
248   public static final int ARRAY_BOOLEAN    = 4;
249   public static final int ARRAY_CHAR      = 5;
250   public static final int ARRAY_FLOAT      = 6;
251   public static final int ARRAY_DOUBLE    = 7;
252   public static final int ARRAY_BYTE      = 8;
253   public static final int ARRAY_SHORT      = 9;
254   public static final int ARRAY_INT      = 10;
255   public static final int ARRAY_LONG      = 11;
256 
257   // math operations
258   public static final int MATH_ADD      = IADD;
259   public static final int MATH_SUB      = ISUB;
260   public static final int MATH_MUL      = IMUL;
261   public static final int MATH_DIV      = IDIV;
262   public static final int MATH_REM      = IREM;
263   public static final int MATH_NEG      = INEG;
264   public static final int MATH_SHL      = ISHL;
265   public static final int MATH_SHR      = ISHR;
266   public static final int MATH_USHR      = IUSHR;
267   public static final int MATH_AND      = IAND;
268   public static final int MATH_OR        = IOR;
269   public static final int MATH_XOR      = IXOR;
270 
271   // human-readable opcode names
272   public static final String[] OPCODE_NAMES  = new String[] {
273     "nop",
274     "aconst_null",
275     "iconst_m1",
276     "iconst_0",
277     "iconst_1",
278     "iconst_2",
279     "iconst_3",
280     "iconst_4",
281     "iconst_5",
282     "lconst_0",
283     "lconst_1",
284     "fconst_0",
285     "fconst_1",
286     "fconst_2",
287     "dconst_0",
288     "dconst_1",
289     "bipush",
290     "sipush",
291     "ldc",
292     "ldc_w",
293     "ldc2_w",
294     "iload",
295     "lload",
296     "fload",
297     "dload",
298     "aload",
299     "iload_0",
300     "iload_1",
301     "iload_2",
302     "iload_3",
303     "lload_0",
304     "lload_1",
305     "lload_2",
306     "lload_3",
307     "fload_0",
308     "fload_1",
309     "fload_2",
310     "fload_3",
311     "dload_0",
312     "dload_1",
313     "dload_2",
314     "dload_3",
315     "aload_0",
316     "aload_1",
317     "aload_2",
318     "aload_3",
319     "iaload",
320     "laload",
321     "faload",
322     "daload",
323     "aaload",
324     "baload",
325     "caload",
326     "saload",
327     "istore",
328     "lstore",
329     "fstore",
330     "dstore",
331     "astore",
332     "istore_0",
333     "istore_1",
334     "istore_2",
335     "istore_3",
336     "lstore_0",
337     "lstore_1",
338     "lstore_2",
339     "lstore_3",
340     "fstore_0",
341     "fstore_1",
342     "fstore_2",
343     "fstore_3",
344     "dstore_0",
345     "dstore_1",
346     "dstore_2",
347     "dstore_3",
348     "astore_0",
349     "astore_1",
350     "astore_2",
351     "astore_3",
352     "iastore",
353     "lastore",
354     "fastore",
355     "dastore",
356     "aastore",
357     "bastore",
358     "castore",
359     "sastore",
360     "pop",
361     "pop2",
362     "dup",
363     "dup_x1",
364     "dup_x2",
365     "dup2",
366     "dup2_x1",
367     "dup2_x2",
368     "swap",
369     "iadd",
370     "ladd",
371     "fadd",
372     "dadd",
373     "isub",
374     "lsub",
375     "fsub",
376     "dsub",
377     "imul",
378     "lmul",
379     "fmul",
380     "dmul",
381     "idiv",
382     "ldiv",
383     "fdiv",
384     "ddiv",
385     "irem",
386     "lrem",
387     "frem",
388     "drem",
389     "ineg",
390     "lneg",
391     "fneg",
392     "dneg",
393     "ishl",
394     "lshl",
395     "ishr",
396     "lshr",
397     "iushr",
398     "lushr",
399     "iand",
400     "land",
401     "ior",
402     "lor",
403     "ixor",
404     "lxor",
405     "iinc",
406     "i2l",
407     "i2f",
408     "i2d",
409     "l2i",
410     "l2f",
411     "l2d",
412     "f2i",
413     "f2l",
414     "f2d",
415     "d2i",
416     "d2l",
417     "d2f",
418     "i2b",
419     "i2c",
420     "i2s",
421     "lcmp",
422     "fcmpl",
423     "fcmpg",
424     "dcmpl",
425     "dcmpg",
426     "if_eq",
427     "if_ne",
428     "if_lt",
429     "if_ge",
430     "if_gt",
431     "if_le",
432     "if_icmpeq",
433     "if_icmpne",
434     "if_icmplt",
435     "if_icmpge",
436     "if_icmpgt",
437     "if_icmple",
438     "if_acmpeq",
439     "if_acmpne",
440     "goto",
441     "jsr",
442     "ret",
443     "tableswitch",
444     "lookupswitch",
445     "ireturn",
446     "lreturn",
447     "freturn",
448     "dreturn",
449     "areturn",
450     "return",
451     "getstatic",
452     "putstatic",
453     "getfield",
454     "putfield",
455     "invokevirtual",
456     "invokespecial",
457     "invokestatic",
458     "invokeinterface",
459     "??",
460     "new",
461     "newarray",
462     "anewarray",
463     "arraylength",
464     "athrow",
465     "checkcast",
466     "instanceof",
467     "monitorenter",
468     "monitorexit",
469     "wide",
470     "multianewarray",
471     "if_null",
472     "if_nonnull",
473     "goto_w",
474     "jsr_w",
475   };
476 }