diff --git a/build.xml b/build.xml
index 9d4d0a6..b70de53 100644
--- a/build.xml
+++ b/build.xml
@@ -11,6 +11,7 @@
+
diff --git a/libs/javassist.jar b/libs/javassist.jar
new file mode 100644
index 0000000..e9840d5
Binary files /dev/null and b/libs/javassist.jar differ
diff --git a/src/com/cnaude/chairs/Chairs.java b/src/com/cnaude/chairs/Chairs.java
index f8ed9a6..be982e4 100644
--- a/src/com/cnaude/chairs/Chairs.java
+++ b/src/com/cnaude/chairs/Chairs.java
@@ -52,9 +52,12 @@ public class Chairs extends JavaPlugin {
return vehiclearrowclass;
}
+ GenVehicleArrowClass genvehiclearrow = new GenVehicleArrowClass();
+
@Override
public void onEnable() {
- log = this.getLogger();
+ log = this.getLogger();
+ //load vehiclearrowclass
try {
World world = getServer().getWorlds().get(0);
Arrow arrow = world.spawnArrow(new Location(world, 0, 0, 0), new Vector(0, 0, 0), 0, 0);
@@ -64,7 +67,7 @@ public class Chairs extends JavaPlugin {
getHandle.setAccessible(true);
Class> entityarrow = getHandle.invoke(arrow).getClass();
Class> craftserver = getServer().getClass();
- vehiclearrowclass = new GenVehicleArrowClass(this).genAndLoadClass(arrowclass, entityarrow, craftserver);
+ vehiclearrowclass = genvehiclearrow.genAndLoadClass(arrowclass, entityarrow, craftserver);
arrow.remove();
} catch (Exception e) {
e.printStackTrace();
@@ -105,6 +108,7 @@ public class Chairs extends JavaPlugin {
chairEffects.cancelPickup();
chairEffects = null;
log = null;
+ genvehiclearrow = null;
vehiclearrowclass = null;
psitdata = null;
}
diff --git a/src/com/cnaude/chairs/GenVehicleArrowClass.java b/src/com/cnaude/chairs/GenVehicleArrowClass.java
index 421ac89..49c4d98 100644
--- a/src/com/cnaude/chairs/GenVehicleArrowClass.java
+++ b/src/com/cnaude/chairs/GenVehicleArrowClass.java
@@ -1,94 +1,40 @@
package com.cnaude.chairs;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Vehicle;
-import org.apache.bcel.Constants;
-import org.apache.bcel.generic.ALOAD;
-import org.apache.bcel.generic.ClassGen;
-import org.apache.bcel.generic.ConstantPoolGen;
-import org.apache.bcel.generic.InstructionConstants;
-import org.apache.bcel.generic.InstructionFactory;
-import org.apache.bcel.generic.InstructionList;
-import org.apache.bcel.generic.InvokeInstruction;
-import org.apache.bcel.generic.MethodGen;
-import org.apache.bcel.generic.Type;
+import javassist.CannotCompileException;
+import javassist.ClassClassPath;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtNewConstructor;
+import javassist.NotFoundException;
public class GenVehicleArrowClass {
- private File datafolder;
- public GenVehicleArrowClass(Chairs plugin)
+ public Class> genAndLoadClass(String arrowclass, Class> entityarrow, Class> craftserver) throws IOException, ClassNotFoundException, NotFoundException, CannotCompileException
{
- this.datafolder = plugin.getDataFolder();
- }
-
- public Class> genAndLoadClass(String arrowclass, Class> entityarrow, Class> craftserver) throws IOException, ClassNotFoundException {
- ClassGen cg = new ClassGen(
- "VehicleArrow",
- arrowclass,
- "",
- Constants.ACC_PUBLIC | Constants.ACC_SUPER,
- new String[]{"org.bukkit.entity.Vehicle"}
- );
- ConstantPoolGen cp = cg.getConstantPool();
- InstructionList il = new InstructionList();
- MethodGen mg = new MethodGen(
- Constants.ACC_PUBLIC,
- Type.VOID,
- new Type[] { Type.getType(craftserver), Type.getType(entityarrow) },
- new String[] { "server", "entity" },
- "",
- "VehicleArrow",
- il,
- cp
- );
- InstructionFactory factory = new InstructionFactory(cg);
- il.append(new ALOAD(0));
- il.append(new ALOAD(1));
- il.append(new ALOAD(2));
- InvokeInstruction ii = factory.createInvoke(
- arrowclass,
- "",
- Type.VOID,
- new Type[] {Type.getType(craftserver), Type.getType(entityarrow)},
- Constants.INVOKESPECIAL
- );
- il.append(ii);
- il.append(InstructionConstants.RETURN);
- mg.setMaxStack();
- cg.addMethod(mg.getMethod());
- il.dispose();
- cg.getJavaClass().dump(datafolder+File.separator+"VehicleArrow.class");
- File arrowfile = new File(datafolder+File.separator+"VehicleArrow.class");
- InputStream arrwoinputstrean = new FileInputStream(arrowfile);
- File jarfile = new File(datafolder+File.separator+"VehicleArrow.jar");
- jarfile.delete();
- final ZipOutputStream zipout = new ZipOutputStream(new FileOutputStream(jarfile));
- ZipEntry entry = new ZipEntry(arrowfile.getName());
- zipout.putNextEntry(entry);
- byte[] buffer = new byte[1024];
- int bytesRead;
- while ((bytesRead = arrwoinputstrean.read(buffer)) != -1) {
- zipout.write(buffer, 0, bytesRead);
- }
- zipout.closeEntry();
- arrwoinputstrean.close();
- zipout.close();
- URL url = jarfile.toURI().toURL();
- URL[] urls = new URL[]{url};
- URLClassLoader cl = new URLClassLoader(urls);
- Class> vehiclearrowclass = cl.loadClass("VehicleArrow");
- cl.close();
- arrowfile.delete();
- jarfile.delete();
- return vehiclearrowclass;
+ ClassPool pool = ClassPool.getDefault();
+ pool.insertClassPath
+ (
+ new ClassClassPath(Bukkit.class)
+ );
+ CtClass cc = pool.makeClass("com.cnaude.chairs.VehicleArrow");
+ cc.setSuperclass(pool.getCtClass(arrowclass));
+ cc.setInterfaces
+ (
+ new CtClass[]
+ {
+ pool.get(Vehicle.class.getName())
+ }
+ );
+ String counstructorsource = "public VehicleArrow("+craftserver.getName()+" server, "+entityarrow.getName()+" entity)\n{\nsuper(server, entity);\n}";
+ cc.addConstructor
+ (
+ CtNewConstructor.make(counstructorsource, cc)
+ );
+ return cc.toClass();
}
diff --git a/src/org/apache/bcel/Constants.java b/src/org/apache/bcel/Constants.java
deleted file mode 100644
index 39d0917..0000000
--- a/src/org/apache/bcel/Constants.java
+++ /dev/null
@@ -1,797 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel;
-
-/**
- * Constants for the project, mostly defined in the JVM specification.
- *
- * @version $Id: Constants.java 410087 2006-05-29 12:12:19Z tcurdt $
- * @author M. Dahm
- */
-public interface Constants {
- /**
- * Major and minor version of the code.
- */
- public final static short MAJOR_1_1 = 45;
- public final static short MINOR_1_1 = 3;
- public final static short MAJOR_1_2 = 46;
- public final static short MINOR_1_2 = 0;
- public final static short MAJOR_1_3 = 47;
- public final static short MINOR_1_3 = 0;
- public final static short MAJOR_1_4 = 48;
- public final static short MINOR_1_4 = 0;
- public final static short MAJOR_1_5 = 49;
- public final static short MINOR_1_5 = 0;
- public final static short MAJOR = MAJOR_1_1; // Defaults
- public final static short MINOR = MINOR_1_1;
-
- /**
- * Maximum value for an unsigned short.
- */
- public final static int MAX_SHORT = 65535; // 2^16 - 1
-
- /**
- * Maximum value for an unsigned byte.
- */
- public final static int MAX_BYTE = 255; // 2^8 - 1
-
- /**
- * Access flags for classes, fields and methods.
- */
- public final static short ACC_PUBLIC = 0x0001;
- public final static short ACC_PRIVATE = 0x0002;
- public final static short ACC_PROTECTED = 0x0004;
- public final static short ACC_STATIC = 0x0008;
-
- public final static short ACC_FINAL = 0x0010;
- public final static short ACC_SYNCHRONIZED = 0x0020;
- public final static short ACC_VOLATILE = 0x0040;
- public final static short ACC_BRIDGE = 0x0040;
- public final static short ACC_TRANSIENT = 0x0080;
- public final static short ACC_VARARGS = 0x0080;
-
- public final static short ACC_NATIVE = 0x0100;
- public final static short ACC_INTERFACE = 0x0200;
- public final static short ACC_ABSTRACT = 0x0400;
- public final static short ACC_STRICT = 0x0800;
-
- public final static short ACC_SYNTHETIC = 0x1000;
- public final static short ACC_ANNOTATION = 0x2000;
- public final static short ACC_ENUM = 0x4000;
-
- // Applies to classes compiled by new compilers only
- public final static short ACC_SUPER = 0x0020;
-
- public final static short MAX_ACC_FLAG = ACC_ENUM;
-
- public final static String[] ACCESS_NAMES = { "public", "private",
- "protected", "static", "final", "synchronized", "volatile",
- "transient", "native", "interface", "abstract", "strictfp",
- "synthetic", "annotation", "enum" };
-
- /**
- * Tags in constant pool to denote type of constant.
- */
- public final static byte CONSTANT_Utf8 = 1;
- public final static byte CONSTANT_Integer = 3;
- public final static byte CONSTANT_Float = 4;
- public final static byte CONSTANT_Long = 5;
- public final static byte CONSTANT_Double = 6;
- public final static byte CONSTANT_Class = 7;
- public final static byte CONSTANT_Fieldref = 9;
- public final static byte CONSTANT_String = 8;
- public final static byte CONSTANT_Methodref = 10;
- public final static byte CONSTANT_InterfaceMethodref = 11;
- public final static byte CONSTANT_NameAndType = 12;
-
- public final static String[] CONSTANT_NAMES = { "", "CONSTANT_Utf8", "",
- "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long",
- "CONSTANT_Double", "CONSTANT_Class", "CONSTANT_String",
- "CONSTANT_Fieldref", "CONSTANT_Methodref",
- "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType" };
-
- /**
- * The name of the static initializer, also called "class
- * initialization method" or "interface initialization
- * method". This is "<clinit>".
- */
- public final static String STATIC_INITIALIZER_NAME = "";
-
- /**
- * The name of every constructor method in a class, also called
- * "instance initialization method". This is
- * "<init>".
- */
- public final static String CONSTRUCTOR_NAME = "";
-
- /** The names of the interfaces implemented by arrays */
- public final static String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {
- "java.lang.Cloneable", "java.io.Serializable" };
-
- /**
- * Limitations of the Java Virtual Machine. See The Java Virtual Machine
- * Specification, Second Edition, page 152, chapter 4.10.
- */
- public static final int MAX_CP_ENTRIES = 65535;
- public static final int MAX_CODE_SIZE = 65536; // bytes
-
- /**
- * Java VM opcodes.
- */
- public static final short NOP = 0;
- public static final short ACONST_NULL = 1;
- public static final short ICONST_M1 = 2;
- public static final short ICONST_0 = 3;
- public static final short ICONST_1 = 4;
- public static final short ICONST_2 = 5;
- public static final short ICONST_3 = 6;
- public static final short ICONST_4 = 7;
- public static final short ICONST_5 = 8;
- public static final short LCONST_0 = 9;
- public static final short LCONST_1 = 10;
- public static final short FCONST_0 = 11;
- public static final short FCONST_1 = 12;
- public static final short FCONST_2 = 13;
- public static final short DCONST_0 = 14;
- public static final short DCONST_1 = 15;
- public static final short BIPUSH = 16;
- public static final short SIPUSH = 17;
- public static final short LDC = 18;
- public static final short LDC_W = 19;
- public static final short LDC2_W = 20;
- public static final short ILOAD = 21;
- public static final short LLOAD = 22;
- public static final short FLOAD = 23;
- public static final short DLOAD = 24;
- public static final short ALOAD = 25;
- public static final short ILOAD_0 = 26;
- public static final short ILOAD_1 = 27;
- public static final short ILOAD_2 = 28;
- public static final short ILOAD_3 = 29;
- public static final short LLOAD_0 = 30;
- public static final short LLOAD_1 = 31;
- public static final short LLOAD_2 = 32;
- public static final short LLOAD_3 = 33;
- public static final short FLOAD_0 = 34;
- public static final short FLOAD_1 = 35;
- public static final short FLOAD_2 = 36;
- public static final short FLOAD_3 = 37;
- public static final short DLOAD_0 = 38;
- public static final short DLOAD_1 = 39;
- public static final short DLOAD_2 = 40;
- public static final short DLOAD_3 = 41;
- public static final short ALOAD_0 = 42;
- public static final short ALOAD_1 = 43;
- public static final short ALOAD_2 = 44;
- public static final short ALOAD_3 = 45;
- public static final short IALOAD = 46;
- public static final short LALOAD = 47;
- public static final short FALOAD = 48;
- public static final short DALOAD = 49;
- public static final short AALOAD = 50;
- public static final short BALOAD = 51;
- public static final short CALOAD = 52;
- public static final short SALOAD = 53;
- public static final short ISTORE = 54;
- public static final short LSTORE = 55;
- public static final short FSTORE = 56;
- public static final short DSTORE = 57;
- public static final short ASTORE = 58;
- public static final short ISTORE_0 = 59;
- public static final short ISTORE_1 = 60;
- public static final short ISTORE_2 = 61;
- public static final short ISTORE_3 = 62;
- public static final short LSTORE_0 = 63;
- public static final short LSTORE_1 = 64;
- public static final short LSTORE_2 = 65;
- public static final short LSTORE_3 = 66;
- public static final short FSTORE_0 = 67;
- public static final short FSTORE_1 = 68;
- public static final short FSTORE_2 = 69;
- public static final short FSTORE_3 = 70;
- public static final short DSTORE_0 = 71;
- public static final short DSTORE_1 = 72;
- public static final short DSTORE_2 = 73;
- public static final short DSTORE_3 = 74;
- public static final short ASTORE_0 = 75;
- public static final short ASTORE_1 = 76;
- public static final short ASTORE_2 = 77;
- public static final short ASTORE_3 = 78;
- public static final short IASTORE = 79;
- public static final short LASTORE = 80;
- public static final short FASTORE = 81;
- public static final short DASTORE = 82;
- public static final short AASTORE = 83;
- public static final short BASTORE = 84;
- public static final short CASTORE = 85;
- public static final short SASTORE = 86;
- public static final short POP = 87;
- public static final short POP2 = 88;
- public static final short DUP = 89;
- public static final short DUP_X1 = 90;
- public static final short DUP_X2 = 91;
- public static final short DUP2 = 92;
- public static final short DUP2_X1 = 93;
- public static final short DUP2_X2 = 94;
- public static final short SWAP = 95;
- public static final short IADD = 96;
- public static final short LADD = 97;
- public static final short FADD = 98;
- public static final short DADD = 99;
- public static final short ISUB = 100;
- public static final short LSUB = 101;
- public static final short FSUB = 102;
- public static final short DSUB = 103;
- public static final short IMUL = 104;
- public static final short LMUL = 105;
- public static final short FMUL = 106;
- public static final short DMUL = 107;
- public static final short IDIV = 108;
- public static final short LDIV = 109;
- public static final short FDIV = 110;
- public static final short DDIV = 111;
- public static final short IREM = 112;
- public static final short LREM = 113;
- public static final short FREM = 114;
- public static final short DREM = 115;
- public static final short INEG = 116;
- public static final short LNEG = 117;
- public static final short FNEG = 118;
- public static final short DNEG = 119;
- public static final short ISHL = 120;
- public static final short LSHL = 121;
- public static final short ISHR = 122;
- public static final short LSHR = 123;
- public static final short IUSHR = 124;
- public static final short LUSHR = 125;
- public static final short IAND = 126;
- public static final short LAND = 127;
- public static final short IOR = 128;
- public static final short LOR = 129;
- public static final short IXOR = 130;
- public static final short LXOR = 131;
- public static final short IINC = 132;
- public static final short I2L = 133;
- public static final short I2F = 134;
- public static final short I2D = 135;
- public static final short L2I = 136;
- public static final short L2F = 137;
- public static final short L2D = 138;
- public static final short F2I = 139;
- public static final short F2L = 140;
- public static final short F2D = 141;
- public static final short D2I = 142;
- public static final short D2L = 143;
- public static final short D2F = 144;
- public static final short I2B = 145;
- public static final short INT2BYTE = 145; // Old notion
- public static final short I2C = 146;
- public static final short INT2CHAR = 146; // Old notion
- public static final short I2S = 147;
- public static final short INT2SHORT = 147; // Old notion
- public static final short LCMP = 148;
- public static final short FCMPL = 149;
- public static final short FCMPG = 150;
- public static final short DCMPL = 151;
- public static final short DCMPG = 152;
- public static final short IFEQ = 153;
- public static final short IFNE = 154;
- public static final short IFLT = 155;
- public static final short IFGE = 156;
- public static final short IFGT = 157;
- public static final short IFLE = 158;
- public static final short IF_ICMPEQ = 159;
- public static final short IF_ICMPNE = 160;
- public static final short IF_ICMPLT = 161;
- public static final short IF_ICMPGE = 162;
- public static final short IF_ICMPGT = 163;
- public static final short IF_ICMPLE = 164;
- public static final short IF_ACMPEQ = 165;
- public static final short IF_ACMPNE = 166;
- public static final short GOTO = 167;
- public static final short JSR = 168;
- public static final short RET = 169;
- public static final short TABLESWITCH = 170;
- public static final short LOOKUPSWITCH = 171;
- public static final short IRETURN = 172;
- public static final short LRETURN = 173;
- public static final short FRETURN = 174;
- public static final short DRETURN = 175;
- public static final short ARETURN = 176;
- public static final short RETURN = 177;
- public static final short GETSTATIC = 178;
- public static final short PUTSTATIC = 179;
- public static final short GETFIELD = 180;
- public static final short PUTFIELD = 181;
- public static final short INVOKEVIRTUAL = 182;
- public static final short INVOKESPECIAL = 183;
- public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
- public static final short INVOKESTATIC = 184;
- public static final short INVOKEINTERFACE = 185;
- public static final short NEW = 187;
- public static final short NEWARRAY = 188;
- public static final short ANEWARRAY = 189;
- public static final short ARRAYLENGTH = 190;
- public static final short ATHROW = 191;
- public static final short CHECKCAST = 192;
- public static final short INSTANCEOF = 193;
- public static final short MONITORENTER = 194;
- public static final short MONITOREXIT = 195;
- public static final short WIDE = 196;
- public static final short MULTIANEWARRAY = 197;
- public static final short IFNULL = 198;
- public static final short IFNONNULL = 199;
- public static final short GOTO_W = 200;
- public static final short JSR_W = 201;
-
- /**
- * Non-legal opcodes, may be used by JVM internally.
- */
- public static final short BREAKPOINT = 202;
- public static final short LDC_QUICK = 203;
- public static final short LDC_W_QUICK = 204;
- public static final short LDC2_W_QUICK = 205;
- public static final short GETFIELD_QUICK = 206;
- public static final short PUTFIELD_QUICK = 207;
- public static final short GETFIELD2_QUICK = 208;
- public static final short PUTFIELD2_QUICK = 209;
- public static final short GETSTATIC_QUICK = 210;
- public static final short PUTSTATIC_QUICK = 211;
- public static final short GETSTATIC2_QUICK = 212;
- public static final short PUTSTATIC2_QUICK = 213;
- public static final short INVOKEVIRTUAL_QUICK = 214;
- public static final short INVOKENONVIRTUAL_QUICK = 215;
- public static final short INVOKESUPER_QUICK = 216;
- public static final short INVOKESTATIC_QUICK = 217;
- public static final short INVOKEINTERFACE_QUICK = 218;
- public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
- public static final short NEW_QUICK = 221;
- public static final short ANEWARRAY_QUICK = 222;
- public static final short MULTIANEWARRAY_QUICK = 223;
- public static final short CHECKCAST_QUICK = 224;
- public static final short INSTANCEOF_QUICK = 225;
- public static final short INVOKEVIRTUAL_QUICK_W = 226;
- public static final short GETFIELD_QUICK_W = 227;
- public static final short PUTFIELD_QUICK_W = 228;
- public static final short IMPDEP1 = 254;
- public static final short IMPDEP2 = 255;
-
- /**
- * For internal purposes only.
- */
- public static final short PUSH = 4711;
- public static final short SWITCH = 4712;
-
- /**
- * Illegal codes
- */
- public static final short UNDEFINED = -1;
- public static final short UNPREDICTABLE = -2;
- public static final short RESERVED = -3;
- public static final String ILLEGAL_OPCODE = "";
- public static final String ILLEGAL_TYPE = "";
-
- public static final byte T_BOOLEAN = 4;
- public static final byte T_CHAR = 5;
- public static final byte T_FLOAT = 6;
- public static final byte T_DOUBLE = 7;
- public static final byte T_BYTE = 8;
- public static final byte T_SHORT = 9;
- public static final byte T_INT = 10;
- public static final byte T_LONG = 11;
-
- public static final byte T_VOID = 12; // Non-standard
- public static final byte T_ARRAY = 13;
- public static final byte T_OBJECT = 14;
- public static final byte T_REFERENCE = 14; // Deprecated
- public static final byte T_UNKNOWN = 15;
- public static final byte T_ADDRESS = 16;
-
- /**
- * The primitive type names corresponding to the T_XX constants, e.g.,
- * TYPE_NAMES[T_INT] = "int"
- */
- public static final String[] TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE,
- ILLEGAL_TYPE, ILLEGAL_TYPE, "boolean", "char", "float", "double",
- "byte", "short", "int", "long", "void", "array", "object",
- "unknown" // Non-standard
- };
-
- /**
- * The primitive class names corresponding to the T_XX constants, e.g.,
- * CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
- */
- public static final String[] CLASS_TYPE_NAMES = { ILLEGAL_TYPE,
- ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "java.lang.Boolean",
- "java.lang.Character", "java.lang.Float", "java.lang.Double",
- "java.lang.Byte", "java.lang.Short", "java.lang.Integer",
- "java.lang.Long", "java.lang.Void", ILLEGAL_TYPE, ILLEGAL_TYPE,
- ILLEGAL_TYPE };
-
- /**
- * The signature characters corresponding to primitive types, e.g.,
- * SHORT_TYPE_NAMES[T_INT] = "I"
- */
- public static final String[] SHORT_TYPE_NAMES = { ILLEGAL_TYPE,
- ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "Z", "C", "F", "D", "B",
- "S", "I", "J", "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE };
-
- /**
- * Number of byte code operands, i.e., number of bytes after the tag byte
- * itself.
- */
- public static final short[] NO_OF_OPERANDS = { 0/* nop */,
- 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */,
- 0/* iconst_2 */, 0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */,
- 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */,
- 0/* fconst_2 */, 0/* dconst_0 */, 0/* dconst_1 */, 1/* bipush */,
- 2/* sipush */, 1/* ldc */, 2/* ldc_w */, 2/* ldc2_w */,
- 1/* iload */, 1/* lload */, 1/* fload */, 1/* dload */, 1/* aload */,
- 0/* iload_0 */, 0/* iload_1 */, 0/* iload_2 */, 0/* iload_3 */,
- 0/* lload_0 */, 0/* lload_1 */, 0/* lload_2 */, 0/* lload_3 */,
- 0/* fload_0 */, 0/* fload_1 */, 0/* fload_2 */, 0/* fload_3 */,
- 0/* dload_0 */, 0/* dload_1 */, 0/* dload_2 */, 0/* dload_3 */,
- 0/* aload_0 */, 0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */,
- 0/* iaload */, 0/* laload */, 0/* faload */, 0/* daload */,
- 0/* aaload */, 0/* baload */, 0/* caload */, 0/* saload */,
- 1/* istore */, 1/* lstore */, 1/* fstore */, 1/* dstore */,
- 1/* astore */, 0/* istore_0 */, 0/* istore_1 */, 0/* istore_2 */,
- 0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */,
- 0/* lstore_3 */, 0/* fstore_0 */, 0/* fstore_1 */, 0/* fstore_2 */,
- 0/* fstore_3 */, 0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */,
- 0/* dstore_3 */, 0/* astore_0 */, 0/* astore_1 */, 0/* astore_2 */,
- 0/* astore_3 */, 0/* iastore */, 0/* lastore */, 0/* fastore */,
- 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */,
- 0/* sastore */, 0/* pop */, 0/* pop2 */, 0/* dup */, 0/* dup_x1 */,
- 0/* dup_x2 */, 0/* dup2 */, 0/* dup2_x1 */, 0/* dup2_x2 */,
- 0/* swap */, 0/* iadd */, 0/* ladd */, 0/* fadd */, 0/* dadd */,
- 0/* isub */, 0/* lsub */, 0/* fsub */, 0/* dsub */, 0/* imul */,
- 0/* lmul */, 0/* fmul */, 0/* dmul */, 0/* idiv */, 0/* ldiv */,
- 0/* fdiv */, 0/* ddiv */, 0/* irem */, 0/* lrem */, 0/* frem */,
- 0/* drem */, 0/* ineg */, 0/* lneg */, 0/* fneg */, 0/* dneg */,
- 0/* ishl */, 0/* lshl */, 0/* ishr */, 0/* lshr */, 0/* iushr */,
- 0/* lushr */, 0/* iand */, 0/* land */, 0/* ior */, 0/* lor */,
- 0/* ixor */, 0/* lxor */, 2/* iinc */, 0/* i2l */, 0/* i2f */,
- 0/* i2d */, 0/* l2i */, 0/* l2f */, 0/* l2d */, 0/* f2i */,
- 0/* f2l */, 0/* f2d */, 0/* d2i */, 0/* d2l */, 0/* d2f */,
- 0/* i2b */, 0/* i2c */, 0/* i2s */, 0/* lcmp */, 0/* fcmpl */,
- 0/* fcmpg */, 0/* dcmpl */, 0/* dcmpg */, 2/* ifeq */, 2/* ifne */,
- 2/* iflt */, 2/* ifge */, 2/* ifgt */, 2/* ifle */, 2/* if_icmpeq */,
- 2/* if_icmpne */, 2/* if_icmplt */, 2/* if_icmpge */, 2/* if_icmpgt */,
- 2/* if_icmple */, 2/* if_acmpeq */, 2/* if_acmpne */, 2/* goto */,
- 2/* jsr */, 1/* ret */, UNPREDICTABLE/* tableswitch */,
- UNPREDICTABLE/* lookupswitch */, 0/* ireturn */, 0/* lreturn */,
- 0/* freturn */, 0/* dreturn */, 0/* areturn */, 0/* return */,
- 2/* getstatic */, 2/* putstatic */, 2/* getfield */, 2/* putfield */,
- 2/* invokevirtual */, 2/* invokespecial */, 2/* invokestatic */,
- 4/* invokeinterface */, UNDEFINED, 2/* new */, 1/* newarray */,
- 2/* anewarray */, 0/* arraylength */, 0/* athrow */,
- 2/* checkcast */, 2/* instanceof */, 0/* monitorenter */,
- 0/* monitorexit */, UNPREDICTABLE/* wide */, 3/* multianewarray */,
- 2/* ifnull */, 2/* ifnonnull */, 4/* goto_w */, 4/* jsr_w */,
- 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- RESERVED/* impdep1 */, RESERVED /* impdep2 */
- };
-
- /**
- * How the byte code operands are to be interpreted.
- */
- public static final short[][] TYPE_OF_OPERANDS = { {}/* nop */,
- {}/* aconst_null */, {}/* iconst_m1 */, {}/* iconst_0 */,
- {}/* iconst_1 */, {}/* iconst_2 */, {}/* iconst_3 */, {}/* iconst_4 */,
- {}/* iconst_5 */, {}/* lconst_0 */, {}/* lconst_1 */, {}/* fconst_0 */,
- {}/* fconst_1 */, {}/* fconst_2 */, {}/* dconst_0 */, {}/* dconst_1 */,
- { T_BYTE }/* bipush */, { T_SHORT }/* sipush */, { T_BYTE }/* ldc */,
- { T_SHORT }/* ldc_w */, { T_SHORT }/* ldc2_w */,
- { T_BYTE }/* iload */, { T_BYTE }/* lload */,
- { T_BYTE }/* fload */, { T_BYTE }/* dload */,
- { T_BYTE }/* aload */, {}/* iload_0 */, {}/* iload_1 */,
- {}/* iload_2 */, {}/* iload_3 */, {}/* lload_0 */, {}/* lload_1 */,
- {}/* lload_2 */, {}/* lload_3 */, {}/* fload_0 */, {}/* fload_1 */,
- {}/* fload_2 */, {}/* fload_3 */, {}/* dload_0 */, {}/* dload_1 */,
- {}/* dload_2 */, {}/* dload_3 */, {}/* aload_0 */, {}/* aload_1 */,
- {}/* aload_2 */, {}/* aload_3 */, {}/* iaload */, {}/* laload */,
- {}/* faload */, {}/* daload */, {}/* aaload */, {}/* baload */,
- {}/* caload */, {}/* saload */, { T_BYTE }/* istore */,
- { T_BYTE }/* lstore */, { T_BYTE }/* fstore */,
- { T_BYTE }/* dstore */, { T_BYTE }/* astore */, {}/* istore_0 */,
- {}/* istore_1 */, {}/* istore_2 */, {}/* istore_3 */, {}/* lstore_0 */,
- {}/* lstore_1 */, {}/* lstore_2 */, {}/* lstore_3 */, {}/* fstore_0 */,
- {}/* fstore_1 */, {}/* fstore_2 */, {}/* fstore_3 */, {}/* dstore_0 */,
- {}/* dstore_1 */, {}/* dstore_2 */, {}/* dstore_3 */, {}/* astore_0 */,
- {}/* astore_1 */, {}/* astore_2 */, {}/* astore_3 */, {}/* iastore */,
- {}/* lastore */, {}/* fastore */, {}/* dastore */, {}/* aastore */,
- {}/* bastore */, {}/* castore */, {}/* sastore */, {}/* pop */,
- {}/* pop2 */, {}/* dup */, {}/* dup_x1 */, {}/* dup_x2 */, {}/* dup2 */,
- {}/* dup2_x1 */, {}/* dup2_x2 */, {}/* swap */, {}/* iadd */, {}/* ladd */,
- {}/* fadd */, {}/* dadd */, {}/* isub */, {}/* lsub */, {}/* fsub */,
- {}/* dsub */, {}/* imul */, {}/* lmul */, {}/* fmul */, {}/* dmul */,
- {}/* idiv */, {}/* ldiv */, {}/* fdiv */, {}/* ddiv */, {}/* irem */,
- {}/* lrem */, {}/* frem */, {}/* drem */, {}/* ineg */, {}/* lneg */,
- {}/* fneg */, {}/* dneg */, {}/* ishl */, {}/* lshl */, {}/* ishr */,
- {}/* lshr */, {}/* iushr */, {}/* lushr */, {}/* iand */, {}/* land */,
- {}/* ior */, {}/* lor */, {}/* ixor */, {}/* lxor */,
- { T_BYTE, T_BYTE }/* iinc */, {}/* i2l */, {}/* i2f */, {}/* i2d */,
- {}/* l2i */, {}/* l2f */, {}/* l2d */, {}/* f2i */, {}/* f2l */,
- {}/* f2d */, {}/* d2i */, {}/* d2l */, {}/* d2f */, {}/* i2b */,
- {}/* i2c */, {}/* i2s */, {}/* lcmp */, {}/* fcmpl */, {}/* fcmpg */,
- {}/* dcmpl */, {}/* dcmpg */, { T_SHORT }/* ifeq */,
- { T_SHORT }/* ifne */, { T_SHORT }/* iflt */,
- { T_SHORT }/* ifge */, { T_SHORT }/* ifgt */,
- { T_SHORT }/* ifle */, { T_SHORT }/* if_icmpeq */,
- { T_SHORT }/* if_icmpne */, { T_SHORT }/* if_icmplt */,
- { T_SHORT }/* if_icmpge */, { T_SHORT }/* if_icmpgt */,
- { T_SHORT }/* if_icmple */, { T_SHORT }/* if_acmpeq */,
- { T_SHORT }/* if_acmpne */, { T_SHORT }/* goto */,
- { T_SHORT }/* jsr */, { T_BYTE }/* ret */, {}/* tableswitch */,
- {}/* lookupswitch */, {}/* ireturn */, {}/* lreturn */, {}/* freturn */,
- {}/* dreturn */, {}/* areturn */, {}/* return */,
- { T_SHORT }/* getstatic */, { T_SHORT }/* putstatic */,
- { T_SHORT }/* getfield */, { T_SHORT }/* putfield */,
- { T_SHORT }/* invokevirtual */, { T_SHORT }/* invokespecial */,
- { T_SHORT }/* invokestatic */,
- { T_SHORT, T_BYTE, T_BYTE }/* invokeinterface */, {},
- { T_SHORT }/* new */, { T_BYTE }/* newarray */,
- { T_SHORT }/* anewarray */, {}/* arraylength */, {}/* athrow */,
- { T_SHORT }/* checkcast */, { T_SHORT }/* instanceof */,
- {}/* monitorenter */, {}/* monitorexit */, { T_BYTE }/* wide */,
- { T_SHORT, T_BYTE }/* multianewarray */, { T_SHORT }/* ifnull */,
- { T_SHORT }/* ifnonnull */, { T_INT }/* goto_w */,
- { T_INT }/* jsr_w */, {}/* breakpoint */, {}, {}, {}, {}, {}, {},
- {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
- {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
- {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}/* impdep1 */, {} /* impdep2 */
- };
-
- /**
- * Names of opcodes.
- */
- public static final String[] OPCODE_NAMES = { "nop", "aconst_null",
- "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3",
- "iconst_4", "iconst_5", "lconst_0", "lconst_1", "fconst_0",
- "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush",
- "ldc", "ldc_w", "ldc2_w", "iload", "lload", "fload", "dload",
- "aload", "iload_0", "iload_1", "iload_2", "iload_3", "lload_0",
- "lload_1", "lload_2", "lload_3", "fload_0", "fload_1", "fload_2",
- "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0",
- "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload",
- "daload", "aaload", "baload", "caload", "saload", "istore",
- "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1",
- "istore_2", "istore_3", "lstore_0", "lstore_1", "lstore_2",
- "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3",
- "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0",
- "astore_1", "astore_2", "astore_3", "iastore", "lastore",
- "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
- "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
- "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
- "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
- "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
- "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
- "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
- "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l",
- "d2f", "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", "dcmpl",
- "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
- "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
- "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
- "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
- "dreturn", "areturn", "return", "getstatic", "putstatic",
- "getfield", "putfield", "invokevirtual", "invokespecial",
- "invokestatic", "invokeinterface", ILLEGAL_OPCODE, "new",
- "newarray", "anewarray", "arraylength", "athrow", "checkcast",
- "instanceof", "monitorenter", "monitorexit", "wide",
- "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w",
- "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
- "impdep1", "impdep2" };
-
- /**
- * Number of words consumed on operand stack by instructions.
- */
- public static final int[] CONSUME_STACK = { 0/* nop */, 0/* aconst_null */,
- 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
- 0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */,
- 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */,
- 0/* dconst_0 */, 0/* dconst_1 */, 0/* bipush */, 0/* sipush */,
- 0/* ldc */, 0/* ldc_w */, 0/* ldc2_w */, 0/* iload */, 0/* lload */,
- 0/* fload */, 0/* dload */, 0/* aload */, 0/* iload_0 */, 0/* iload_1 */,
- 0/* iload_2 */, 0/* iload_3 */, 0/* lload_0 */, 0/* lload_1 */,
- 0/* lload_2 */, 0/* lload_3 */, 0/* fload_0 */, 0/* fload_1 */,
- 0/* fload_2 */, 0/* fload_3 */, 0/* dload_0 */, 0/* dload_1 */,
- 0/* dload_2 */, 0/* dload_3 */, 0/* aload_0 */, 0/* aload_1 */,
- 0/* aload_2 */, 0/* aload_3 */, 2/* iaload */, 2/* laload */,
- 2/* faload */, 2/* daload */, 2/* aaload */, 2/* baload */,
- 2/* caload */, 2/* saload */, 1/* istore */, 2/* lstore */,
- 1/* fstore */, 2/* dstore */, 1/* astore */, 1/* istore_0 */,
- 1/* istore_1 */, 1/* istore_2 */, 1/* istore_3 */, 2/* lstore_0 */,
- 2/* lstore_1 */, 2/* lstore_2 */, 2/* lstore_3 */, 1/* fstore_0 */,
- 1/* fstore_1 */, 1/* fstore_2 */, 1/* fstore_3 */, 2/* dstore_0 */,
- 2/* dstore_1 */, 2/* dstore_2 */, 2/* dstore_3 */, 1/* astore_0 */,
- 1/* astore_1 */, 1/* astore_2 */, 1/* astore_3 */, 3/* iastore */,
- 4/* lastore */, 3/* fastore */, 4/* dastore */, 3/* aastore */,
- 3/* bastore */, 3/* castore */, 3/* sastore */, 1/* pop */,
- 2/* pop2 */, 1/* dup */, 2/* dup_x1 */, 3/* dup_x2 */, 2/* dup2 */,
- 3/* dup2_x1 */, 4/* dup2_x2 */, 2/* swap */, 2/* iadd */, 4/* ladd */,
- 2/* fadd */, 4/* dadd */, 2/* isub */, 4/* lsub */, 2/* fsub */,
- 4/* dsub */, 2/* imul */, 4/* lmul */, 2/* fmul */, 4/* dmul */,
- 2/* idiv */, 4/* ldiv */, 2/* fdiv */, 4/* ddiv */, 2/* irem */,
- 4/* lrem */, 2/* frem */, 4/* drem */, 1/* ineg */, 2/* lneg */,
- 1/* fneg */, 2/* dneg */, 2/* ishl */, 3/* lshl */, 2/* ishr */,
- 3/* lshr */, 2/* iushr */, 3/* lushr */, 2/* iand */, 4/* land */,
- 2/* ior */, 4/* lor */, 2/* ixor */, 4/* lxor */, 0/* iinc */,
- 1/* i2l */, 1/* i2f */, 1/* i2d */, 2/* l2i */, 2/* l2f */,
- 2/* l2d */, 1/* f2i */, 1/* f2l */, 1/* f2d */, 2/* d2i */,
- 2/* d2l */, 2/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */,
- 4/* lcmp */, 2/* fcmpl */, 2/* fcmpg */, 4/* dcmpl */, 4/* dcmpg */,
- 1/* ifeq */, 1/* ifne */, 1/* iflt */, 1/* ifge */, 1/* ifgt */,
- 1/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */, 2/* if_icmplt */,
- 2 /* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */,
- 2/* if_acmpne */, 0/* goto */, 0/* jsr */, 0/* ret */,
- 1/* tableswitch */, 1/* lookupswitch */, 1/* ireturn */,
- 2/* lreturn */, 1/* freturn */, 2/* dreturn */, 1/* areturn */,
- 0/* return */, 0/* getstatic */, UNPREDICTABLE/* putstatic */,
- 1/* getfield */, UNPREDICTABLE/* putfield */,
- UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
- UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
- UNDEFINED, 0/* new */, 1/* newarray */, 1/* anewarray */,
- 1/* arraylength */, 1/* athrow */, 1/* checkcast */,
- 1/* instanceof */, 1/* monitorenter */, 1/* monitorexit */,
- 0/* wide */, UNPREDICTABLE/* multianewarray */, 1/* ifnull */,
- 1/* ifnonnull */, 0/* goto_w */, 0/* jsr_w */, 0/* breakpoint */,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */,
- UNPREDICTABLE /* impdep2 */
- };
-
- /**
- * Number of words produced onto operand stack by instructions.
- */
- public static final int[] PRODUCE_STACK = { 0/* nop */, 1/* aconst_null */,
- 1/* iconst_m1 */, 1/* iconst_0 */, 1/* iconst_1 */, 1/* iconst_2 */,
- 1/* iconst_3 */, 1/* iconst_4 */, 1/* iconst_5 */, 2/* lconst_0 */,
- 2/* lconst_1 */, 1/* fconst_0 */, 1/* fconst_1 */, 1/* fconst_2 */,
- 2/* dconst_0 */, 2/* dconst_1 */, 1/* bipush */, 1/* sipush */,
- 1/* ldc */, 1/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 2/* lload */,
- 1/* fload */, 2/* dload */, 1/* aload */, 1/* iload_0 */, 1/* iload_1 */,
- 1/* iload_2 */, 1/* iload_3 */, 2/* lload_0 */, 2/* lload_1 */,
- 2/* lload_2 */, 2/* lload_3 */, 1/* fload_0 */, 1/* fload_1 */,
- 1/* fload_2 */, 1/* fload_3 */, 2/* dload_0 */, 2/* dload_1 */,
- 2/* dload_2 */, 2/* dload_3 */, 1/* aload_0 */, 1/* aload_1 */,
- 1/* aload_2 */, 1/* aload_3 */, 1/* iaload */, 2/* laload */,
- 1/* faload */, 2/* daload */, 1/* aaload */, 1/* baload */,
- 1/* caload */, 1/* saload */, 0/* istore */, 0/* lstore */,
- 0/* fstore */, 0/* dstore */, 0/* astore */, 0/* istore_0 */,
- 0/* istore_1 */, 0/* istore_2 */, 0/* istore_3 */, 0/* lstore_0 */,
- 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */,
- 0/* fstore_1 */, 0/* fstore_2 */, 0/* fstore_3 */, 0/* dstore_0 */,
- 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */,
- 0/* astore_1 */, 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */,
- 0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */,
- 0/* bastore */, 0/* castore */, 0/* sastore */, 0/* pop */,
- 0/* pop2 */, 2/* dup */, 3/* dup_x1 */, 4/* dup_x2 */, 4/* dup2 */,
- 5/* dup2_x1 */, 6/* dup2_x2 */, 2/* swap */, 1/* iadd */, 2/* ladd */,
- 1/* fadd */, 2/* dadd */, 1/* isub */, 2/* lsub */, 1/* fsub */,
- 2/* dsub */, 1/* imul */, 2/* lmul */, 1/* fmul */, 2/* dmul */,
- 1/* idiv */, 2/* ldiv */, 1/* fdiv */, 2/* ddiv */, 1/* irem */,
- 2/* lrem */, 1/* frem */, 2/* drem */, 1/* ineg */, 2/* lneg */,
- 1/* fneg */, 2/* dneg */, 1/* ishl */, 2/* lshl */, 1/* ishr */,
- 2/* lshr */, 1/* iushr */, 2/* lushr */, 1/* iand */, 2/* land */,
- 1/* ior */, 2/* lor */, 1/* ixor */, 2/* lxor */, 0/* iinc */,
- 2/* i2l */, 1/* i2f */, 2/* i2d */, 1/* l2i */, 1/* l2f */,
- 2/* l2d */, 1/* f2i */, 2/* f2l */, 2/* f2d */, 1/* d2i */,
- 2/* d2l */, 1/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */,
- 1/* lcmp */, 1/* fcmpl */, 1/* fcmpg */, 1/* dcmpl */, 1/* dcmpg */,
- 0/* ifeq */, 0/* ifne */, 0/* iflt */, 0/* ifge */, 0/* ifgt */,
- 0/* ifle */, 0/* if_icmpeq */, 0/* if_icmpne */, 0/* if_icmplt */,
- 0/* if_icmpge */, 0/* if_icmpgt */, 0/* if_icmple */, 0/* if_acmpeq */,
- 0/* if_acmpne */, 0/* goto */, 1/* jsr */, 0/* ret */,
- 0/* tableswitch */, 0/* lookupswitch */, 0/* ireturn */,
- 0/* lreturn */, 0/* freturn */, 0/* dreturn */, 0/* areturn */,
- 0/* return */, UNPREDICTABLE/* getstatic */, 0/* putstatic */,
- UNPREDICTABLE/* getfield */, 0/* putfield */,
- UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
- UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
- UNDEFINED, 1/* new */, 1/* newarray */, 1/* anewarray */,
- 1/* arraylength */, 1/* athrow */, 1/* checkcast */,
- 1/* instanceof */, 0/* monitorenter */, 0/* monitorexit */,
- 0/* wide */, 1/* multianewarray */, 0/* ifnull */,
- 0/* ifnonnull */, 0/* goto_w */, 1/* jsr_w */, 0/* breakpoint */,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
- UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */,
- UNPREDICTABLE /* impdep2 */
- };
-
- /**
- * Attributes and their corresponding names.
- */
- public static final byte ATTR_UNKNOWN = -1;
- public static final byte ATTR_SOURCE_FILE = 0;
- public static final byte ATTR_CONSTANT_VALUE = 1;
- public static final byte ATTR_CODE = 2;
- public static final byte ATTR_EXCEPTIONS = 3;
- public static final byte ATTR_LINE_NUMBER_TABLE = 4;
- public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
- public static final byte ATTR_INNER_CLASSES = 6;
- public static final byte ATTR_SYNTHETIC = 7;
- public static final byte ATTR_DEPRECATED = 8;
- public static final byte ATTR_PMG = 9;
- public static final byte ATTR_SIGNATURE = 10;
- public static final byte ATTR_STACK_MAP = 11;
- public static final byte ATTR_RUNTIMEVISIBLE_ANNOTATIONS = 12;
- public static final byte ATTR_RUNTIMEINVISIBLE_ANNOTATIONS = 13;
- public static final byte ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS = 14;
- public static final byte ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS = 15;
- public static final byte ATTR_ANNOTATION_DEFAULT = 16;
-
- public static final short KNOWN_ATTRIBUTES = 12;// should be 17
-
- public static final String[] ATTRIBUTE_NAMES = { "SourceFile",
- "ConstantValue", "Code", "Exceptions", "LineNumberTable",
- "LocalVariableTable", "InnerClasses", "Synthetic", "Deprecated",
- "PMGClass", "Signature", "StackMap", "RuntimeVisibleAnnotations",
- "RuntimeInvisibleAnnotations",
- "RuntimeVisibleParameterAnnotations",
- "RuntimeInvisibleParameterAnnotations", "AnnotationDefault" };
-
- /**
- * Constants used in the StackMap attribute.
- */
- public static final byte ITEM_Bogus = 0;
- public static final byte ITEM_Integer = 1;
- public static final byte ITEM_Float = 2;
- public static final byte ITEM_Double = 3;
- public static final byte ITEM_Long = 4;
- public static final byte ITEM_Null = 5;
- public static final byte ITEM_InitObject = 6;
- public static final byte ITEM_Object = 7;
- public static final byte ITEM_NewObject = 8;
-
- public static final String[] ITEM_NAMES = { "Bogus", "Integer", "Float",
- "Double", "Long", "Null", "InitObject", "Object", "NewObject" };
-}
diff --git a/src/org/apache/bcel/ExceptionConstants.java b/src/org/apache/bcel/ExceptionConstants.java
deleted file mode 100644
index fe8f3ee..0000000
--- a/src/org/apache/bcel/ExceptionConstants.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel;
-
-/**
- * Exception constants.
- *
- * @version $Id: ExceptionConstants.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author E. Haase
- */
-public interface ExceptionConstants {
-
- /**
- * The mother of all exceptions
- */
- public static final Class THROWABLE = Throwable.class;
- /**
- * Super class of any run-time exception
- */
- public static final Class RUNTIME_EXCEPTION = RuntimeException.class;
- /**
- * Super class of any linking exception (aka Linkage Error)
- */
- public static final Class LINKING_EXCEPTION = LinkageError.class;
- /**
- * Linking Exceptions
- */
- public static final Class CLASS_CIRCULARITY_ERROR = ClassCircularityError.class;
- public static final Class CLASS_FORMAT_ERROR = ClassFormatError.class;
- public static final Class EXCEPTION_IN_INITIALIZER_ERROR = ExceptionInInitializerError.class;
- public static final Class INCOMPATIBLE_CLASS_CHANGE_ERROR = IncompatibleClassChangeError.class;
- public static final Class ABSTRACT_METHOD_ERROR = AbstractMethodError.class;
- public static final Class ILLEGAL_ACCESS_ERROR = IllegalAccessError.class;
- public static final Class INSTANTIATION_ERROR = InstantiationError.class;
- public static final Class NO_SUCH_FIELD_ERROR = NoSuchFieldError.class;
- public static final Class NO_SUCH_METHOD_ERROR = NoSuchMethodError.class;
- public static final Class NO_CLASS_DEF_FOUND_ERROR = NoClassDefFoundError.class;
- public static final Class UNSATISFIED_LINK_ERROR = UnsatisfiedLinkError.class;
- public static final Class VERIFY_ERROR = VerifyError.class;
- /* UnsupportedClassVersionError is new in JDK 1.2 */
- // public static final Class UnsupportedClassVersionError =
- // UnsupportedClassVersionError.class;
- /**
- * Run-Time Exceptions
- */
- public static final Class NULL_POINTER_EXCEPTION = NullPointerException.class;
- public static final Class ARRAY_INDEX_OUT_OF_BOUNDS_EXCEPTION = ArrayIndexOutOfBoundsException.class;
- public static final Class ARITHMETIC_EXCEPTION = ArithmeticException.class;
- public static final Class NEGATIVE_ARRAY_SIZE_EXCEPTION = NegativeArraySizeException.class;
- public static final Class CLASS_CAST_EXCEPTION = ClassCastException.class;
- public static final Class ILLEGAL_MONITOR_STATE = IllegalMonitorStateException.class;
- /**
- * Pre-defined exception arrays according to chapters 5.1-5.4 of the Java
- * Virtual Machine Specification
- */
- public static final Class>[] EXCS_CLASS_AND_INTERFACE_RESOLUTION = {
- NO_CLASS_DEF_FOUND_ERROR, CLASS_FORMAT_ERROR, VERIFY_ERROR,
- ABSTRACT_METHOD_ERROR, EXCEPTION_IN_INITIALIZER_ERROR,
- ILLEGAL_ACCESS_ERROR }; // Chapter 5.1
- public static final Class>[] EXCS_FIELD_AND_METHOD_RESOLUTION = {
- NO_SUCH_FIELD_ERROR, ILLEGAL_ACCESS_ERROR, NO_SUCH_METHOD_ERROR }; // Chapter
- // 5.2
- public static final Class>[] EXCS_INTERFACE_METHOD_RESOLUTION = new Class[0]; // Chapter
- // 5.3
- // (as
- // below)
- public static final Class>[] EXCS_STRING_RESOLUTION = new Class[0];
- // Chapter 5.4 (no errors but the ones that _always_ could happen! How
- // stupid.)
- public static final Class>[] EXCS_ARRAY_EXCEPTION = {
- NULL_POINTER_EXCEPTION, ARRAY_INDEX_OUT_OF_BOUNDS_EXCEPTION };
-}
diff --git a/src/org/apache/bcel/Repository.java b/src/org/apache/bcel/Repository.java
deleted file mode 100644
index b06ec8e..0000000
--- a/src/org/apache/bcel/Repository.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel;
-
-import java.io.IOException;
-import org.apache.bcel.classfile.JavaClass;
-import org.apache.bcel.util.ClassPath;
-import org.apache.bcel.util.SyntheticRepository;
-
-/**
- * The repository maintains informations about class interdependencies, e.g.,
- * whether a class is a sub-class of another. Delegates actual class loading to
- * SyntheticRepository with current class path by default.
- *
- * @see org.apache.bcel.util.Repository
- * @see org.apache.bcel.util.SyntheticRepository
- *
- * @version $Id: Repository.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class Repository {
-
- private static org.apache.bcel.util.Repository _repository = SyntheticRepository
- .getInstance();
-
- /**
- * @return currently used repository instance
- */
- public static org.apache.bcel.util.Repository getRepository() {
- return _repository;
- }
-
- /**
- * Set repository instance to be used for class loading
- */
- public static void setRepository(org.apache.bcel.util.Repository rep) {
- _repository = rep;
- }
-
- /**
- * Lookup class somewhere found on your CLASSPATH, or whereever the
- * repository instance looks for it.
- *
- * @return class object for given fully qualified class name
- * @throws ClassNotFoundException
- * if the class could not be found or parsed correctly
- */
- public static JavaClass lookupClass(String class_name)
- throws ClassNotFoundException {
- return _repository.loadClass(class_name);
- }
-
- /**
- * Try to find class source using the internal repository instance.
- *
- * @see Class
- * @return JavaClass object for given runtime class
- * @throws ClassNotFoundException
- * if the class could not be found or parsed correctly
- */
- public static JavaClass lookupClass(Class> clazz)
- throws ClassNotFoundException {
- return _repository.loadClass(clazz);
- }
-
- /**
- * @return class file object for given Java class by looking on the system
- * class path; returns null if the class file can't be found
- */
- public static ClassPath.ClassFile lookupClassFile(String class_name) {
- try {
- ClassPath path = _repository.getClassPath();
- if (path == null) {
- return null;
- }
- return path.getClassFile(class_name);
- } catch (IOException e) {
- return null;
- }
- }
-
- /**
- * Clear the repository.
- */
- public static void clearCache() {
- _repository.clear();
- }
-
- /**
- * Add clazz to repository if there isn't an equally named class already in
- * there.
- *
- * @return old entry in repository
- */
- public static JavaClass addClass(JavaClass clazz) {
- JavaClass old = _repository.findClass(clazz.getClassName());
- _repository.storeClass(clazz);
- return old;
- }
-
- /**
- * Remove class with given (fully qualified) name from repository.
- */
- public static void removeClass(String clazz) {
- _repository.removeClass(_repository.findClass(clazz));
- }
-
- /**
- * Remove given class from repository.
- */
- public static void removeClass(JavaClass clazz) {
- _repository.removeClass(clazz);
- }
-
- /**
- * @return list of super classes of clazz in ascending order, i.e., Object
- * is always the last element
- * @throws ClassNotFoundException
- * if any of the superclasses can't be found
- */
- public static JavaClass[] getSuperClasses(JavaClass clazz)
- throws ClassNotFoundException {
- return clazz.getSuperClasses();
- }
-
- /**
- * @return list of super classes of clazz in ascending order, i.e., Object
- * is always the last element.
- * @throws ClassNotFoundException
- * if the named class or any of its superclasses can't be found
- */
- public static JavaClass[] getSuperClasses(String class_name)
- throws ClassNotFoundException {
- JavaClass jc = lookupClass(class_name);
- return getSuperClasses(jc);
- }
-
- /**
- * @return all interfaces implemented by class and its super classes and the
- * interfaces that those interfaces extend, and so on. (Some people
- * call this a transitive hull).
- * @throws ClassNotFoundException
- * if any of the class's superclasses or superinterfaces can't
- * be found
- */
- public static JavaClass[] getInterfaces(JavaClass clazz)
- throws ClassNotFoundException {
- return clazz.getAllInterfaces();
- }
-
- /**
- * @return all interfaces implemented by class and its super classes and the
- * interfaces that extend those interfaces, and so on
- * @throws ClassNotFoundException
- * if the named class can't be found, or if any of its
- * superclasses or superinterfaces can't be found
- */
- public static JavaClass[] getInterfaces(String class_name)
- throws ClassNotFoundException {
- return getInterfaces(lookupClass(class_name));
- }
-
- /**
- * Equivalent to runtime "instanceof" operator.
- *
- * @return true, if clazz is an instance of super_class
- * @throws ClassNotFoundException
- * if any superclasses or superinterfaces of clazz can't be
- * found
- */
- public static boolean instanceOf(JavaClass clazz, JavaClass super_class)
- throws ClassNotFoundException {
- return clazz.instanceOf(super_class);
- }
-
- /**
- * @return true, if clazz is an instance of super_class
- * @throws ClassNotFoundException
- * if either clazz or super_class can't be found
- */
- public static boolean instanceOf(String clazz, String super_class)
- throws ClassNotFoundException {
- return instanceOf(lookupClass(clazz), lookupClass(super_class));
- }
-
- /**
- * @return true, if clazz is an instance of super_class
- * @throws ClassNotFoundException
- * if super_class can't be found
- */
- public static boolean instanceOf(JavaClass clazz, String super_class)
- throws ClassNotFoundException {
- return instanceOf(clazz, lookupClass(super_class));
- }
-
- /**
- * @return true, if clazz is an instance of super_class
- * @throws ClassNotFoundException
- * if clazz can't be found
- */
- public static boolean instanceOf(String clazz, JavaClass super_class)
- throws ClassNotFoundException {
- return instanceOf(lookupClass(clazz), super_class);
- }
-
- /**
- * @return true, if clazz is an implementation of interface inter
- * @throws ClassNotFoundException
- * if any superclasses or superinterfaces of clazz can't be
- * found
- */
- public static boolean implementationOf(JavaClass clazz, JavaClass inter)
- throws ClassNotFoundException {
- return clazz.implementationOf(inter);
- }
-
- /**
- * @return true, if clazz is an implementation of interface inter
- * @throws ClassNotFoundException
- * if clazz, inter, or any superclasses or superinterfaces of
- * clazz can't be found
- */
- public static boolean implementationOf(String clazz, String inter)
- throws ClassNotFoundException {
- return implementationOf(lookupClass(clazz), lookupClass(inter));
- }
-
- /**
- * @return true, if clazz is an implementation of interface inter
- * @throws ClassNotFoundException
- * if inter or any superclasses or superinterfaces of clazz
- * can't be found
- */
- public static boolean implementationOf(JavaClass clazz, String inter)
- throws ClassNotFoundException {
- return implementationOf(clazz, lookupClass(inter));
- }
-
- /**
- * @return true, if clazz is an implementation of interface inter
- * @throws ClassNotFoundException
- * if clazz or any superclasses or superinterfaces of clazz
- * can't be found
- */
- public static boolean implementationOf(String clazz, JavaClass inter)
- throws ClassNotFoundException {
- return implementationOf(lookupClass(clazz), inter);
- }
-}
diff --git a/src/org/apache/bcel/classfile/AccessFlags.java b/src/org/apache/bcel/classfile/AccessFlags.java
deleted file mode 100644
index 006f318..0000000
--- a/src/org/apache/bcel/classfile/AccessFlags.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import org.apache.bcel.Constants;
-
-/**
- * Super class for all objects that have modifiers like private, final, ... I.e.
- * classes, fields, and methods.
- *
- * @version $Id: AccessFlags.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class AccessFlags implements java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int access_flags;
-
- public AccessFlags() {
- }
-
- /**
- * @param a
- * inital access flags
- */
- public AccessFlags(int a) {
- access_flags = a;
- }
-
- /**
- * @return Access flags of the object aka. "modifiers".
- */
- public final int getAccessFlags() {
- return access_flags;
- }
-
- /**
- * @return Access flags of the object aka. "modifiers".
- */
- public final int getModifiers() {
- return access_flags;
- }
-
- /**
- * Set access flags aka "modifiers".
- *
- * @param access_flags
- * Access flags of the object.
- */
- public final void setAccessFlags(int access_flags) {
- this.access_flags = access_flags;
- }
-
- /**
- * Set access flags aka "modifiers".
- *
- * @param access_flags
- * Access flags of the object.
- */
- public final void setModifiers(int access_flags) {
- setAccessFlags(access_flags);
- }
-
- private final void setFlag(int flag, boolean set) {
- if ((access_flags & flag) != 0) { // Flag is set already
- if (!set) {
- access_flags ^= flag;
- }
- } else { // Flag not set
- if (set) {
- access_flags |= flag;
- }
- }
- }
-
- public final void isPublic(boolean flag) {
- setFlag(Constants.ACC_PUBLIC, flag);
- }
-
- public final boolean isPublic() {
- return (access_flags & Constants.ACC_PUBLIC) != 0;
- }
-
- public final void isPrivate(boolean flag) {
- setFlag(Constants.ACC_PRIVATE, flag);
- }
-
- public final boolean isPrivate() {
- return (access_flags & Constants.ACC_PRIVATE) != 0;
- }
-
- public final void isProtected(boolean flag) {
- setFlag(Constants.ACC_PROTECTED, flag);
- }
-
- public final boolean isProtected() {
- return (access_flags & Constants.ACC_PROTECTED) != 0;
- }
-
- public final void isStatic(boolean flag) {
- setFlag(Constants.ACC_STATIC, flag);
- }
-
- public final boolean isStatic() {
- return (access_flags & Constants.ACC_STATIC) != 0;
- }
-
- public final void isFinal(boolean flag) {
- setFlag(Constants.ACC_FINAL, flag);
- }
-
- public final boolean isFinal() {
- return (access_flags & Constants.ACC_FINAL) != 0;
- }
-
- public final void isSynchronized(boolean flag) {
- setFlag(Constants.ACC_SYNCHRONIZED, flag);
- }
-
- public final boolean isSynchronized() {
- return (access_flags & Constants.ACC_SYNCHRONIZED) != 0;
- }
-
- public final void isVolatile(boolean flag) {
- setFlag(Constants.ACC_VOLATILE, flag);
- }
-
- public final boolean isVolatile() {
- return (access_flags & Constants.ACC_VOLATILE) != 0;
- }
-
- public final void isTransient(boolean flag) {
- setFlag(Constants.ACC_TRANSIENT, flag);
- }
-
- public final boolean isTransient() {
- return (access_flags & Constants.ACC_TRANSIENT) != 0;
- }
-
- public final void isNative(boolean flag) {
- setFlag(Constants.ACC_NATIVE, flag);
- }
-
- public final boolean isNative() {
- return (access_flags & Constants.ACC_NATIVE) != 0;
- }
-
- public final void isInterface(boolean flag) {
- setFlag(Constants.ACC_INTERFACE, flag);
- }
-
- public final boolean isInterface() {
- return (access_flags & Constants.ACC_INTERFACE) != 0;
- }
-
- public final void isAbstract(boolean flag) {
- setFlag(Constants.ACC_ABSTRACT, flag);
- }
-
- public final boolean isAbstract() {
- return (access_flags & Constants.ACC_ABSTRACT) != 0;
- }
-
- public final void isStrictfp(boolean flag) {
- setFlag(Constants.ACC_STRICT, flag);
- }
-
- public final boolean isStrictfp() {
- return (access_flags & Constants.ACC_STRICT) != 0;
- }
-
- public final void isSynthetic(boolean flag) {
- setFlag(Constants.ACC_SYNTHETIC, flag);
- }
-
- public final boolean isSynthetic() {
- return (access_flags & Constants.ACC_SYNTHETIC) != 0;
- }
-
- public final void isAnnotation(boolean flag) {
- setFlag(Constants.ACC_ANNOTATION, flag);
- }
-
- public final boolean isAnnotation() {
- return (access_flags & Constants.ACC_ANNOTATION) != 0;
- }
-
- public final void isEnum(boolean flag) {
- setFlag(Constants.ACC_ENUM, flag);
- }
-
- public final boolean isEnum() {
- return (access_flags & Constants.ACC_ENUM) != 0;
- }
-}
diff --git a/src/org/apache/bcel/classfile/Attribute.java b/src/org/apache/bcel/classfile/Attribute.java
deleted file mode 100644
index 5225814..0000000
--- a/src/org/apache/bcel/classfile/Attribute.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.bcel.Constants;
-
-/**
- * Abstract super class for Attribute objects. Currently the
- * ConstantValue, SourceFile, Code,
- * Exceptiontable, LineNumberTable,
- * LocalVariableTable, InnerClasses and Synthetic
- * attributes are supported. The Unknown attribute stands for
- * non-standard-attributes.
- *
- * @version $Id: Attribute.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see ConstantValue
- * @see SourceFile
- * @see Code
- * @see Unknown
- * @see ExceptionTable
- * @see LineNumberTable
- * @see LocalVariableTable
- * @see InnerClasses
- * @see Synthetic
- * @see Deprecated
- * @see Signature
- */
-public abstract class Attribute implements Cloneable, Node, Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int name_index; // Points to attribute name in constant pool
- protected int length; // Content length of attribute field
- protected byte tag; // Tag to distiguish subclasses
- protected ConstantPool constant_pool;
-
- protected Attribute(byte tag, int name_index, int length,
- ConstantPool constant_pool) {
- this.tag = tag;
- this.name_index = name_index;
- this.length = length;
- this.constant_pool = constant_pool;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public abstract void accept(Visitor v);
-
- /**
- * Dump attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- public void dump(DataOutputStream file) throws IOException {
- file.writeShort(name_index);
- file.writeInt(length);
- }
-
- private static Map readers = new HashMap();
-
- /**
- * Add an Attribute reader capable of parsing (user-defined) attributes
- * named "name". You should not add readers for the standard attributes such
- * as "LineNumberTable", because those are handled internally.
- *
- * @param name
- * the name of the attribute as stored in the class file
- * @param r
- * the reader object
- */
- public static void addAttributeReader(String name, AttributeReader r) {
- readers.put(name, r);
- }
-
- /**
- * Remove attribute reader
- *
- * @param name
- * the name of the attribute as stored in the class file
- */
- public static void removeAttributeReader(String name) {
- readers.remove(name);
- }
-
- /*
- * Class method reads one attribute from the input data stream. This method
- * must not be accessible from the outside. It is called by the Field and
- * Method constructor methods.
- *
- * @see Field
- *
- * @see Method
- *
- * @param file Input stream
- *
- * @param constant_pool Array of constants
- *
- * @return Attribute
- *
- * @throws IOException
- *
- * @throws ClassFormatException
- */
- public static final Attribute readAttribute(DataInputStream file,
- ConstantPool constant_pool) throws IOException,
- ClassFormatException {
- ConstantUtf8 c;
- String name;
- int name_index;
- int length;
- byte tag = Constants.ATTR_UNKNOWN; // Unknown attribute
- // Get class name from constant pool via `name_index' indirection
- name_index = file.readUnsignedShort();
- c = (ConstantUtf8) constant_pool.getConstant(name_index,
- Constants.CONSTANT_Utf8);
- name = c.getBytes();
- // Length of data in bytes
- length = file.readInt();
- // Compare strings to find known attribute
- for (byte i = 0; i < Constants.KNOWN_ATTRIBUTES; i++) {
- if (name.equals(Constants.ATTRIBUTE_NAMES[i])) {
- tag = i; // found!
- break;
- }
- }
- // Call proper constructor, depending on `tag'
- switch (tag) {
- case Constants.ATTR_UNKNOWN:
- AttributeReader r = readers.get(name);
- if (r != null) {
- return r.createAttribute(name_index, length, file,
- constant_pool);
- }
- return new Unknown(name_index, length, file, constant_pool);
- case Constants.ATTR_CONSTANT_VALUE:
- return new ConstantValue(name_index, length, file, constant_pool);
- case Constants.ATTR_SOURCE_FILE:
- return new SourceFile(name_index, length, file, constant_pool);
- case Constants.ATTR_CODE:
- return new Code(name_index, length, file, constant_pool);
- case Constants.ATTR_EXCEPTIONS:
- return new ExceptionTable(name_index, length, file, constant_pool);
- case Constants.ATTR_LINE_NUMBER_TABLE:
- return new LineNumberTable(name_index, length, file, constant_pool);
- case Constants.ATTR_LOCAL_VARIABLE_TABLE:
- return new LocalVariableTable(name_index, length, file,
- constant_pool);
- case Constants.ATTR_INNER_CLASSES:
- return new InnerClasses(name_index, length, file, constant_pool);
- case Constants.ATTR_SYNTHETIC:
- return new Synthetic(name_index, length, file, constant_pool);
- case Constants.ATTR_DEPRECATED:
- return new Deprecated(name_index, length, file, constant_pool);
- case Constants.ATTR_PMG:
- return new PMGClass(name_index, length, file, constant_pool);
- case Constants.ATTR_SIGNATURE:
- return new Signature(name_index, length, file, constant_pool);
- case Constants.ATTR_STACK_MAP:
- return new StackMap(name_index, length, file, constant_pool);
- // case Constants.ATTR_RUNTIMEVISIBLE_ANNOTATIONS:
- // return new RuntimeVisibleAnnotations(name_index, length, file,
- // constant_pool);
- // case Constants.ATTR_RUNTIMEINVISIBLE_ANNOTATIONS:
- // return new RuntimeInvisibleAnnotations(name_index, length, file,
- // constant_pool);
- // case Constants.ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS:
- // return new RuntimeVisibleParameterAnnotations(name_index, length,
- // file, constant_pool);
- // case Constants.ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS:
- // return new RuntimeInvisibleParameterAnnotations(name_index,
- // length, file, constant_pool);
- // case Constants.ATTR_ANNOTATION_DEFAULT:
- // return new AnnotationDefault(name_index, length, file,
- // constant_pool);
- default: // Never reached
- throw new IllegalStateException("Ooops! default case reached.");
- }
- }
-
- /**
- * @return Length of attribute field in bytes.
- */
- public final int getLength() {
- return length;
- }
-
- /**
- * @param length
- * length in bytes.
- */
- public final void setLength(int length) {
- this.length = length;
- }
-
- /**
- * @param name_index
- * of attribute.
- */
- public final void setNameIndex(int name_index) {
- this.name_index = name_index;
- }
-
- /**
- * @return Name index in constant pool of attribute name.
- */
- public final int getNameIndex() {
- return name_index;
- }
-
- /**
- * @return Tag of attribute, i.e., its type. Value may not be altered, thus
- * there is no setTag() method.
- */
- public final byte getTag() {
- return tag;
- }
-
- /**
- * @return Constant pool used by this object.
- * @see ConstantPool
- */
- public final ConstantPool getConstantPool() {
- return constant_pool;
- }
-
- /**
- * @param constant_pool
- * Constant pool to be used for this object.
- * @see ConstantPool
- */
- public final void setConstantPool(ConstantPool constant_pool) {
- this.constant_pool = constant_pool;
- }
-
- /**
- * Use copy() if you want to have a deep copy(), i.e., with all references
- * copied correctly.
- *
- * @return shallow copy of this attribute
- */
- @Override
- public Object clone() {
- Object o = null;
- try {
- o = super.clone();
- } catch (CloneNotSupportedException e) {
- e.printStackTrace(); // Never occurs
- }
- return o;
- }
-
- /**
- * @return deep copy of this attribute
- */
- public abstract Attribute copy(ConstantPool _constant_pool);
-
- /**
- * @return attribute name.
- */
- @Override
- public String toString() {
- return Constants.ATTRIBUTE_NAMES[tag];
- }
-}
diff --git a/src/org/apache/bcel/classfile/AttributeReader.java b/src/org/apache/bcel/classfile/AttributeReader.java
deleted file mode 100644
index 5f0770a..0000000
--- a/src/org/apache/bcel/classfile/AttributeReader.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-/**
- * Unknown (non-standard) attributes may be read via user-defined factory
- * objects that can be registered with the Attribute.addAttributeReader method.
- * These factory objects should implement this interface.
- *
- * @see Attribute
- * @version $Id: AttributeReader.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface AttributeReader {
-
- /**
- * When this attribute reader is added via the static method
- * Attribute.addAttributeReader, an attribute name is associated with it. As
- * the class file parser parses attributes, it will call various
- * AttributeReaders based on the name of the attributes it is constructing.
- *
- * @param name_index
- * An index into the constant pool, indexing a ConstantUtf8 that
- * represents the name of the attribute.
- * @param length
- * The length of the data contained in the attribute. This is
- * written into the constant pool and should agree with what the
- * factory expects the length to be.
- * @param file
- * This is the data input stream that the factory needs to read
- * its data from.
- * @param constant_pool
- * This is the constant pool associated with the Attribute that
- * we are constructing.
- * @return The user-defined AttributeReader should take this data and use it
- * to construct an attribute. In the case of errors, a null can be
- * returned which will cause the parsing of the class file to fail.
- * @see Attribute#addAttributeReader(String, AttributeReader )
- */
- public Attribute createAttribute(int name_index, int length,
- java.io.DataInputStream file, ConstantPool constant_pool);
-}
diff --git a/src/org/apache/bcel/classfile/ClassFormatException.java b/src/org/apache/bcel/classfile/ClassFormatException.java
deleted file mode 100644
index ddc3fb6..0000000
--- a/src/org/apache/bcel/classfile/ClassFormatException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-/**
- * Thrown when the BCEL attempts to read a class file and determines that the
- * file is malformed or otherwise cannot be interpreted as a class file.
- *
- * @version $Id: ClassFormatException.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ClassFormatException extends RuntimeException {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public ClassFormatException() {
- super();
- }
-
- public ClassFormatException(String s) {
- super(s);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ClassParser.java b/src/org/apache/bcel/classfile/ClassParser.java
deleted file mode 100644
index eda99ad..0000000
--- a/src/org/apache/bcel/classfile/ClassParser.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.BufferedInputStream;
-import java.io.DataInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.apache.bcel.Constants;
-
-/**
- * Wrapper class that parses a given Java .class file. The method parse returns a JavaClass object
- * on success. When an I/O error or an inconsistency occurs an appropiate
- * exception is propagated back to the caller.
- *
- * The structure and the names comply, except for a few conveniences, exactly
- * with the JVM specification
- * 1.0. See this paper for further details about the structure of a bytecode
- * file.
- *
- * @version $Id: ClassParser.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class ClassParser {
-
- private DataInputStream file;
- private boolean fileOwned;
- private String file_name;
- private String zip_file;
- private int class_name_index, superclass_name_index;
- private int major, minor; // Compiler version
- private int access_flags; // Access rights of parsed class
- private int[] interfaces; // Names of implemented interfaces
- private ConstantPool constant_pool; // collection of constants
- private Field[] fields; // class fields, i.e., its variables
- private Method[] methods; // methods defined in the class
- private Attribute[] attributes; // attributes defined in the class
- private boolean is_zip; // Loaded from zip file
- private static final int BUFSIZE = 8192;
-
- /**
- * Parse class from the given stream.
- *
- * @param file
- * Input stream
- * @param file_name
- * File name
- */
- public ClassParser(InputStream file, String file_name) {
- this.file_name = file_name;
- fileOwned = false;
- String clazz = file.getClass().getName(); // Not a very clean solution
- // ...
- is_zip = clazz.startsWith("java.util.zip.")
- || clazz.startsWith("java.util.jar.");
- if (file instanceof DataInputStream) {
- this.file = (DataInputStream) file;
- } else {
- this.file = new DataInputStream(new BufferedInputStream(file,
- BUFSIZE));
- }
- }
-
- /**
- * Parse class from given .class file.
- *
- * @param file_name
- * file name
- */
- public ClassParser(String file_name) throws IOException {
- is_zip = false;
- this.file_name = file_name;
- fileOwned = true;
- }
-
- /**
- * Parse class from given .class file in a ZIP-archive
- *
- * @param zip_file
- * zip file name
- * @param file_name
- * file name
- */
- public ClassParser(String zip_file, String file_name) {
- is_zip = true;
- fileOwned = true;
- this.zip_file = zip_file;
- this.file_name = file_name;
- }
-
- /**
- * Parse the given Java class file and return an object that represents the
- * contained data, i.e., constants, methods, fields and commands. A
- * ClassFormatException is raised, if the file is not a valid
- * .class file. (This does not include verification of the byte code as it
- * is performed by the java interpreter).
- *
- * @return Class object representing the parsed class file
- * @throws IOException
- * @throws ClassFormatException
- */
- public JavaClass parse() throws IOException, ClassFormatException {
- ZipFile zip = null;
- try {
- if (fileOwned) {
- if (is_zip) {
- zip = new ZipFile(zip_file);
- ZipEntry entry = zip.getEntry(file_name);
- file = new DataInputStream(new BufferedInputStream(
- zip.getInputStream(entry), BUFSIZE));
- } else {
- file = new DataInputStream(new BufferedInputStream(
- new FileInputStream(file_name), BUFSIZE));
- }
- }
- /****************** Read headers ********************************/
- // Check magic tag of class file
- readID();
- // Get compiler version
- readVersion();
- /****************** Read constant pool and related **************/
- // Read constant pool entries
- readConstantPool();
- // Get class information
- readClassInfo();
- // Get interface information, i.e., implemented interfaces
- readInterfaces();
- /****************** Read class fields and methods ***************/
- // Read class fields, i.e., the variables of the class
- readFields();
- // Read class methods, i.e., the functions in the class
- readMethods();
- // Read class attributes
- readAttributes();
- // Check for unknown variables
- // Unknown[] u = Unknown.getUnknownAttributes();
- // for(int i=0; i < u.length; i++)
- // System.err.println("WARNING: " + u[i]);
- // Everything should have been read now
- // if(file.available() > 0) {
- // int bytes = file.available();
- // byte[] buf = new byte[bytes];
- // file.read(buf);
- // if(!(is_zip && (buf.length == 1))) {
- // System.err.println("WARNING: Trailing garbage at end of " +
- // file_name);
- // System.err.println(bytes + " extra bytes: " +
- // Utility.toHexString(buf));
- // }
- // }
- } finally {
- // Read everything of interest, so close the file
- if (fileOwned) {
- file.close();
- if (zip != null) {
- zip.close();
- }
- }
- }
- // Return the information we have gathered in a new object
- return new JavaClass(class_name_index, superclass_name_index,
- file_name, major, minor, access_flags, constant_pool,
- interfaces, fields, methods, attributes, is_zip ? JavaClass.ZIP
- : JavaClass.FILE);
- }
-
- /**
- * Read information about the attributes of the class.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readAttributes() throws IOException,
- ClassFormatException {
- int attributes_count;
- attributes_count = file.readUnsignedShort();
- attributes = new Attribute[attributes_count];
- for (int i = 0; i < attributes_count; i++) {
- attributes[i] = Attribute.readAttribute(file, constant_pool);
- }
- }
-
- /**
- * Read information about the class and its super class.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readClassInfo() throws IOException, ClassFormatException {
- access_flags = file.readUnsignedShort();
- /*
- * Interfaces are implicitely abstract, the flag should be set according
- * to the JVM specification.
- */
- if ((access_flags & Constants.ACC_INTERFACE) != 0) {
- access_flags |= Constants.ACC_ABSTRACT;
- }
- if (((access_flags & Constants.ACC_ABSTRACT) != 0)
- && ((access_flags & Constants.ACC_FINAL) != 0)) {
- throw new ClassFormatException(
- "Class can't be both final and abstract");
- }
- class_name_index = file.readUnsignedShort();
- superclass_name_index = file.readUnsignedShort();
- }
-
- /**
- * Read constant pool entries.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readConstantPool() throws IOException,
- ClassFormatException {
- constant_pool = new ConstantPool(file);
- }
-
- /**
- * Read information about the fields of the class, i.e., its variables.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readFields() throws IOException, ClassFormatException {
- int fields_count;
- fields_count = file.readUnsignedShort();
- fields = new Field[fields_count];
- for (int i = 0; i < fields_count; i++) {
- fields[i] = new Field(file, constant_pool);
- }
- }
-
- /******************** Private utility methods **********************/
- /**
- * Check whether the header of the file is ok. Of course, this has to be the
- * first action on successive file reads.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readID() throws IOException, ClassFormatException {
- int magic = 0xCAFEBABE;
- if (file.readInt() != magic) {
- throw new ClassFormatException(file_name
- + " is not a Java .class file");
- }
- }
-
- /**
- * Read information about the interfaces implemented by this class.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readInterfaces() throws IOException,
- ClassFormatException {
- int interfaces_count;
- interfaces_count = file.readUnsignedShort();
- interfaces = new int[interfaces_count];
- for (int i = 0; i < interfaces_count; i++) {
- interfaces[i] = file.readUnsignedShort();
- }
- }
-
- /**
- * Read information about the methods of the class.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readMethods() throws IOException, ClassFormatException {
- int methods_count;
- methods_count = file.readUnsignedShort();
- methods = new Method[methods_count];
- for (int i = 0; i < methods_count; i++) {
- methods[i] = new Method(file, constant_pool);
- }
- }
-
- /**
- * Read major and minor version of compiler which created the file.
- *
- * @throws IOException
- * @throws ClassFormatException
- */
- private final void readVersion() throws IOException, ClassFormatException {
- minor = file.readUnsignedShort();
- major = file.readUnsignedShort();
- }
-}
diff --git a/src/org/apache/bcel/classfile/Code.java b/src/org/apache/bcel/classfile/Code.java
deleted file mode 100644
index 772fb2b..0000000
--- a/src/org/apache/bcel/classfile/Code.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents a chunk of Java byte code contained in a method. It is
- * instantiated by the Attribute.readAttribute() method. A
- * Code attribute contains informations about operand stack, local
- * variables, byte code and the exceptions handled within this method.
- *
- * This attribute has attributes itself, namely LineNumberTable which
- * is used for debugging purposes and LocalVariableTable which contains
- * information about the local variables.
- *
- * @version $Id: Code.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Attribute
- * @see CodeException
- * @see LineNumberTable
- * @see LocalVariableTable
- */
-public final class Code extends Attribute {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int max_stack; // Maximum size of stack used by this method
- private int max_locals; // Number of local variables
- private int code_length; // Length of code in bytes
- private byte[] code; // Actual byte code
- private int exception_table_length;
- private CodeException[] exception_table; // Table of handled exceptions
- private int attributes_count; // Attributes of code: LineNumber
- private Attribute[] attributes; // or LocalVariable
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use copy() for a physical copy.
- */
- public Code(Code c) {
- this(c.getNameIndex(), c.getLength(), c.getMaxStack(),
- c.getMaxLocals(), c.getCode(), c.getExceptionTable(), c
- .getAttributes(), c.getConstantPool());
- }
-
- /**
- * @param name_index
- * Index pointing to the name Code
- * @param length
- * Content length in bytes
- * @param file
- * Input stream
- * @param constant_pool
- * Array of constants
- */
- Code(int name_index, int length, DataInputStream file,
- ConstantPool constant_pool) throws IOException {
- // Initialize with some default values which will be overwritten later
- this(name_index, length, file.readUnsignedShort(), file
- .readUnsignedShort(), (byte[]) null, (CodeException[]) null,
- (Attribute[]) null, constant_pool);
- code_length = file.readInt();
- code = new byte[code_length]; // Read byte code
- file.readFully(code);
- /*
- * Read exception table that contains all regions where an exception
- * handler is active, i.e., a try { ... } catch() block.
- */
- exception_table_length = file.readUnsignedShort();
- exception_table = new CodeException[exception_table_length];
- for (int i = 0; i < exception_table_length; i++) {
- exception_table[i] = new CodeException(file);
- }
- /*
- * Read all attributes, currently `LineNumberTable' and
- * `LocalVariableTable'
- */
- attributes_count = file.readUnsignedShort();
- attributes = new Attribute[attributes_count];
- for (int i = 0; i < attributes_count; i++) {
- attributes[i] = Attribute.readAttribute(file, constant_pool);
- }
- /*
- * Adjust length, because of setAttributes in this(), s.b. length is
- * incorrect, because it didn't take the internal attributes into
- * account yet! Very subtle bug, fixed in 3.1.1.
- */
- this.length = length;
- }
-
- /**
- * @param name_index
- * Index pointing to the name Code
- * @param length
- * Content length in bytes
- * @param max_stack
- * Maximum size of stack
- * @param max_locals
- * Number of local variables
- * @param code
- * Actual byte code
- * @param exception_table
- * Table of handled exceptions
- * @param attributes
- * Attributes of code: LineNumber or LocalVariable
- * @param constant_pool
- * Array of constants
- */
- public Code(int name_index, int length, int max_stack, int max_locals,
- byte[] code, CodeException[] exception_table,
- Attribute[] attributes, ConstantPool constant_pool) {
- super(Constants.ATTR_CODE, name_index, length, constant_pool);
- this.max_stack = max_stack;
- this.max_locals = max_locals;
- setCode(code);
- setExceptionTable(exception_table);
- setAttributes(attributes); // Overwrites length!
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitCode(this);
- }
-
- /**
- * Dump code attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- super.dump(file);
- file.writeShort(max_stack);
- file.writeShort(max_locals);
- file.writeInt(code_length);
- file.write(code, 0, code_length);
- file.writeShort(exception_table_length);
- for (int i = 0; i < exception_table_length; i++) {
- exception_table[i].dump(file);
- }
- file.writeShort(attributes_count);
- for (int i = 0; i < attributes_count; i++) {
- attributes[i].dump(file);
- }
- }
-
- /**
- * @return Collection of code attributes.
- * @see Attribute
- */
- public final Attribute[] getAttributes() {
- return attributes;
- }
-
- /**
- * @return LineNumberTable of Code, if it has one
- */
- public LineNumberTable getLineNumberTable() {
- for (int i = 0; i < attributes_count; i++) {
- if (attributes[i] instanceof LineNumberTable) {
- return (LineNumberTable) attributes[i];
- }
- }
- return null;
- }
-
- /**
- * @return LocalVariableTable of Code, if it has one
- */
- public LocalVariableTable getLocalVariableTable() {
- for (int i = 0; i < attributes_count; i++) {
- if (attributes[i] instanceof LocalVariableTable) {
- return (LocalVariableTable) attributes[i];
- }
- }
- return null;
- }
-
- /**
- * @return Actual byte code of the method.
- */
- public final byte[] getCode() {
- return code;
- }
-
- /**
- * @return Table of handled exceptions.
- * @see CodeException
- */
- public final CodeException[] getExceptionTable() {
- return exception_table;
- }
-
- /**
- * @return Number of local variables.
- */
- public final int getMaxLocals() {
- return max_locals;
- }
-
- /**
- * @return Maximum size of stack used by this method.
- */
- public final int getMaxStack() {
- return max_stack;
- }
-
- /**
- * @return the internal length of this code attribute (minus the first 6
- * bytes) and excluding all its attributes
- */
- private final int getInternalLength() {
- return 2 /* max_stack */+ 2 /* max_locals */+ 4 /* code length */
- + code_length /* byte-code */
- + 2 /* exception-table length */
- + 8 * exception_table_length /* exception table */
- + 2 /* attributes count */;
- }
-
- /**
- * @return the full size of this code attribute, minus its first 6 bytes,
- * including the size of all its contained attributes
- */
- private final int calculateLength() {
- int len = 0;
- for (int i = 0; i < attributes_count; i++) {
- len += attributes[i].length + 6 /* attribute header size */;
- }
- return len + getInternalLength();
- }
-
- /**
- * @param attributes
- * the attributes to set for this Code
- */
- public final void setAttributes(Attribute[] attributes) {
- this.attributes = attributes;
- attributes_count = (attributes == null) ? 0 : attributes.length;
- length = calculateLength(); // Adjust length
- }
-
- /**
- * @param code
- * byte code
- */
- public final void setCode(byte[] code) {
- this.code = code;
- code_length = (code == null) ? 0 : code.length;
- }
-
- /**
- * @param exception_table
- * exception table
- */
- public final void setExceptionTable(CodeException[] exception_table) {
- this.exception_table = exception_table;
- exception_table_length = (exception_table == null) ? 0
- : exception_table.length;
- }
-
- /**
- * @param max_locals
- * maximum number of local variables
- */
- public final void setMaxLocals(int max_locals) {
- this.max_locals = max_locals;
- }
-
- /**
- * @param max_stack
- * maximum stack size
- */
- public final void setMaxStack(int max_stack) {
- this.max_stack = max_stack;
- }
-
- /**
- * @return String representation of code chunk.
- */
- public final String toString(boolean verbose) {
- StringBuffer buf;
- buf = new StringBuffer(100);
- buf.append("Code(max_stack = ")
- .append(max_stack)
- .append(", max_locals = ")
- .append(max_locals)
- .append(", code_length = ")
- .append(code_length)
- .append(")\n")
- .append(Utility.codeToString(code, constant_pool, 0, -1,
- verbose));
- if (exception_table_length > 0) {
- buf.append("\nException handler(s) = \n").append(
- "From\tTo\tHandler\tType\n");
- for (int i = 0; i < exception_table_length; i++) {
- buf.append(exception_table[i].toString(constant_pool, verbose))
- .append("\n");
- }
- }
- if (attributes_count > 0) {
- buf.append("\nAttribute(s) = \n");
- for (int i = 0; i < attributes_count; i++) {
- buf.append(attributes[i].toString()).append("\n");
- }
- }
- return buf.toString();
- }
-
- /**
- * @return String representation of code chunk.
- */
- @Override
- public final String toString() {
- return toString(true);
- }
-
- /**
- * @return deep copy of this attribute
- *
- * @param _constant_pool
- * the constant pool to duplicate
- */
- @Override
- public Attribute copy(ConstantPool _constant_pool) {
- Code c = (Code) clone();
- if (code != null) {
- c.code = new byte[code.length];
- System.arraycopy(code, 0, c.code, 0, code.length);
- }
- c.constant_pool = _constant_pool;
- c.exception_table = new CodeException[exception_table_length];
- for (int i = 0; i < exception_table_length; i++) {
- c.exception_table[i] = exception_table[i].copy();
- }
- c.attributes = new Attribute[attributes_count];
- for (int i = 0; i < attributes_count; i++) {
- c.attributes[i] = attributes[i].copy(_constant_pool);
- }
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/CodeException.java b/src/org/apache/bcel/classfile/CodeException.java
deleted file mode 100644
index c4a5f2f..0000000
--- a/src/org/apache/bcel/classfile/CodeException.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents an entry in the exception table of the Code
- * attribute and is used only there. It contains a range in which a particular
- * exception handler is active.
- *
- * @version $Id: CodeException.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Code
- */
-public final class CodeException implements Cloneable, Constants, Node,
- Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int start_pc; // Range in the code the exception handler is
- private int end_pc; // active. start_pc is inclusive, end_pc exclusive
- private int handler_pc; /*
- * Starting address of exception handler, i.e., an
- * offset from start of code.
- */
- private int catch_type; /*
- * If this is zero the handler catches any
- * exception, otherwise it points to the exception
- * class which is to be caught.
- */
-
- /**
- * Initialize from another object.
- */
- public CodeException(CodeException c) {
- this(c.getStartPC(), c.getEndPC(), c.getHandlerPC(), c.getCatchType());
- }
-
- /**
- * Construct object from file stream.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- CodeException(DataInputStream file) throws IOException {
- this(file.readUnsignedShort(), file.readUnsignedShort(), file
- .readUnsignedShort(), file.readUnsignedShort());
- }
-
- /**
- * @param start_pc
- * Range in the code the exception handler is active, start_pc is
- * inclusive while
- * @param end_pc
- * is exclusive
- * @param handler_pc
- * Starting address of exception handler, i.e., an offset from
- * start of code.
- * @param catch_type
- * If zero the handler catches any exception, otherwise it points
- * to the exception class which is to be caught.
- */
- public CodeException(int start_pc, int end_pc, int handler_pc,
- int catch_type) {
- this.start_pc = start_pc;
- this.end_pc = end_pc;
- this.handler_pc = handler_pc;
- this.catch_type = catch_type;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitCodeException(this);
- }
-
- /**
- * Dump code exception to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- public final void dump(DataOutputStream file) throws IOException {
- file.writeShort(start_pc);
- file.writeShort(end_pc);
- file.writeShort(handler_pc);
- file.writeShort(catch_type);
- }
-
- /**
- * @return 0, if the handler catches any exception, otherwise it points to
- * the exception class which is to be caught.
- */
- public final int getCatchType() {
- return catch_type;
- }
-
- /**
- * @return Exclusive end index of the region where the handler is active.
- */
- public final int getEndPC() {
- return end_pc;
- }
-
- /**
- * @return Starting address of exception handler, relative to the code.
- */
- public final int getHandlerPC() {
- return handler_pc;
- }
-
- /**
- * @return Inclusive start index of the region where the handler is active.
- */
- public final int getStartPC() {
- return start_pc;
- }
-
- /**
- * @param catch_type
- * the type of exception that is caught
- */
- public final void setCatchType(int catch_type) {
- this.catch_type = catch_type;
- }
-
- /**
- * @param end_pc
- * end of handled block
- */
- public final void setEndPC(int end_pc) {
- this.end_pc = end_pc;
- }
-
- /**
- * @param handler_pc
- * where the actual code is
- */
- public final void setHandlerPC(int handler_pc) {
- this.handler_pc = handler_pc;
- }
-
- /**
- * @param start_pc
- * start of handled block
- */
- public final void setStartPC(int start_pc) {
- this.start_pc = start_pc;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return "CodeException(start_pc = " + start_pc + ", end_pc = " + end_pc
- + ", handler_pc = " + handler_pc + ", catch_type = "
- + catch_type + ")";
- }
-
- /**
- * @return String representation.
- */
- public final String toString(ConstantPool cp, boolean verbose) {
- String str;
- if (catch_type == 0) {
- str = "(0)";
- } else {
- str = Utility.compactClassName(
- cp.getConstantString(catch_type, CONSTANT_Class), false)
- + (verbose ? "(" + catch_type + ")" : "");
- }
- return start_pc + "\t" + end_pc + "\t" + handler_pc + "\t" + str;
- }
-
- public final String toString(ConstantPool cp) {
- return toString(cp, true);
- }
-
- /**
- * @return deep copy of this object
- */
- public CodeException copy() {
- try {
- return (CodeException) clone();
- } catch (CloneNotSupportedException e) {
- }
- return null;
- }
-}
diff --git a/src/org/apache/bcel/classfile/Constant.java b/src/org/apache/bcel/classfile/Constant.java
deleted file mode 100644
index f2343a8..0000000
--- a/src/org/apache/bcel/classfile/Constant.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import org.apache.bcel.Constants;
-import org.apache.bcel.util.BCELComparator;
-
-/**
- * Abstract superclass for classes to represent the different constant types in
- * the constant pool of a class file. The classes keep closely to the JVM
- * specification.
- *
- * @version $Id: Constant.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class Constant implements Cloneable, Node, Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private static BCELComparator _cmp = new BCELComparator() {
-
- @Override
- public boolean equals(Object o1, Object o2) {
- Constant THIS = (Constant) o1;
- Constant THAT = (Constant) o2;
- return THIS.toString().equals(THAT.toString());
- }
-
- @Override
- public int hashCode(Object o) {
- Constant THIS = (Constant) o;
- return THIS.toString().hashCode();
- }
- };
- /*
- * In fact this tag is redundant since we can distinguish different
- * `Constant' objects by their type, i.e., via `instanceof'. In some places
- * we will use the tag for switch()es anyway.
- *
- * First, we want match the specification as closely as possible. Second we
- * need the tag as an index to select the corresponding class name from the
- * `CONSTANT_NAMES' array.
- */
- protected byte tag;
-
- Constant(byte tag) {
- this.tag = tag;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public abstract void accept(Visitor v);
-
- public abstract void dump(DataOutputStream file) throws IOException;
-
- /**
- * @return Tag of constant, i.e., its type. No setTag() method to avoid
- * confusion.
- */
- public final byte getTag() {
- return tag;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public String toString() {
- return Constants.CONSTANT_NAMES[tag] + "[" + tag + "]";
- }
-
- /**
- * @return deep copy of this constant
- */
- public Constant copy() {
- try {
- return (Constant) super.clone();
- } catch (CloneNotSupportedException e) {
- }
- return null;
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- /**
- * Read one constant from the given file, the type depends on a tag byte.
- *
- * @param file
- * Input stream
- * @return Constant object
- */
- static final Constant readConstant(DataInputStream file)
- throws IOException, ClassFormatException {
- byte b = file.readByte(); // Read tag byte
- switch (b) {
- case Constants.CONSTANT_Class:
- return new ConstantClass(file);
- case Constants.CONSTANT_Fieldref:
- return new ConstantFieldref(file);
- case Constants.CONSTANT_Methodref:
- return new ConstantMethodref(file);
- case Constants.CONSTANT_InterfaceMethodref:
- return new ConstantInterfaceMethodref(file);
- case Constants.CONSTANT_String:
- return new ConstantString(file);
- case Constants.CONSTANT_Integer:
- return new ConstantInteger(file);
- case Constants.CONSTANT_Float:
- return new ConstantFloat(file);
- case Constants.CONSTANT_Long:
- return new ConstantLong(file);
- case Constants.CONSTANT_Double:
- return new ConstantDouble(file);
- case Constants.CONSTANT_NameAndType:
- return new ConstantNameAndType(file);
- case Constants.CONSTANT_Utf8:
- return new ConstantUtf8(file);
- default:
- throw new ClassFormatException(
- "Invalid byte tag in constant pool: " + b);
- }
- }
-
- /**
- * @return Comparison strategy object
- */
- public static BCELComparator getComparator() {
- return _cmp;
- }
-
- /**
- * @param comparator
- * Comparison strategy object
- */
- public static void setComparator(BCELComparator comparator) {
- _cmp = comparator;
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default two
- * Constant objects are said to be equal when the result of toString() is
- * equal.
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- return _cmp.equals(this, obj);
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default
- * return the hashcode of the result of toString().
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return _cmp.hashCode(this);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantCP.java b/src/org/apache/bcel/classfile/ConstantCP.java
deleted file mode 100644
index cfe7408..0000000
--- a/src/org/apache/bcel/classfile/ConstantCP.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * Abstract super class for Fieldref and Methodref constants.
- *
- * @version $Id: ConstantCP.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see ConstantFieldref
- * @see ConstantMethodref
- * @see ConstantInterfaceMethodref
- */
-public abstract class ConstantCP extends Constant {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- /**
- * References to the constants containing the class and the field signature
- */
- protected int class_index, name_and_type_index;
-
- /**
- * Initialize from another object.
- */
- public ConstantCP(ConstantCP c) {
- this(c.getTag(), c.getClassIndex(), c.getNameAndTypeIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param tag
- * Constant type tag
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantCP(byte tag, DataInputStream file) throws IOException {
- this(tag, file.readUnsignedShort(), file.readUnsignedShort());
- }
-
- /**
- * @param class_index
- * Reference to the class containing the field
- * @param name_and_type_index
- * and the field signature
- */
- protected ConstantCP(byte tag, int class_index, int name_and_type_index) {
- super(tag);
- this.class_index = class_index;
- this.name_and_type_index = name_and_type_index;
- }
-
- /**
- * Dump constant field reference to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeShort(class_index);
- file.writeShort(name_and_type_index);
- }
-
- /**
- * @return Reference (index) to class this field or method belongs to.
- */
- public final int getClassIndex() {
- return class_index;
- }
-
- /**
- * @return Reference (index) to signature of the field.
- */
- public final int getNameAndTypeIndex() {
- return name_and_type_index;
- }
-
- /**
- * @param class_index
- * points to Constant_class
- */
- public final void setClassIndex(int class_index) {
- this.class_index = class_index;
- }
-
- /**
- * @return Class this field belongs to.
- */
- public String getClass(ConstantPool cp) {
- return cp.constantToString(class_index, Constants.CONSTANT_Class);
- }
-
- /**
- * @param name_and_type_index
- * points to Constant_NameAndType
- */
- public final void setNameAndTypeIndex(int name_and_type_index) {
- this.name_and_type_index = name_and_type_index;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(class_index = " + class_index
- + ", name_and_type_index = " + name_and_type_index + ")";
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantClass.java b/src/org/apache/bcel/classfile/ConstantClass.java
deleted file mode 100644
index 32d47e7..0000000
--- a/src/org/apache/bcel/classfile/ConstantClass.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a (external) class.
- *
- * @version $Id: ConstantClass.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantClass extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int name_index; // Identical to ConstantString except for the name
-
- /**
- * Initialize from another object.
- */
- public ConstantClass(ConstantClass c) {
- this(c.getNameIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantClass(DataInputStream file) throws IOException {
- this(file.readUnsignedShort());
- }
-
- /**
- * @param name_index
- * Name index in constant pool. Should refer to a ConstantUtf8.
- */
- public ConstantClass(int name_index) {
- super(Constants.CONSTANT_Class);
- this.name_index = name_index;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantClass(this);
- }
-
- /**
- * Dump constant class to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeShort(name_index);
- }
-
- /**
- * @return Name index in constant pool of class name.
- */
- public final int getNameIndex() {
- return name_index;
- }
-
- /**
- * @param name_index
- * the name index in the constant pool of this Constant Class
- */
- public final void setNameIndex(int name_index) {
- this.name_index = name_index;
- }
-
- /**
- * @return String object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- Constant c = cp.getConstant(name_index, Constants.CONSTANT_Utf8);
- return ((ConstantUtf8) c).getBytes();
- }
-
- /**
- * @return dereferenced string
- */
- public String getBytes(ConstantPool cp) {
- return (String) getConstantValue(cp);
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(name_index = " + name_index + ")";
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantDouble.java b/src/org/apache/bcel/classfile/ConstantDouble.java
deleted file mode 100644
index 7874b49..0000000
--- a/src/org/apache/bcel/classfile/ConstantDouble.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a Double object.
- *
- * @version $Id: ConstantDouble.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantDouble extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private double bytes;
-
- /**
- * @param bytes
- * Data
- */
- public ConstantDouble(double bytes) {
- super(Constants.CONSTANT_Double);
- this.bytes = bytes;
- }
-
- /**
- * Initialize from another object.
- */
- public ConstantDouble(ConstantDouble c) {
- this(c.getBytes());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantDouble(DataInputStream file) throws IOException {
- this(file.readDouble());
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantDouble(this);
- }
-
- /**
- * Dump constant double to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeDouble(bytes);
- }
-
- /**
- * @return data, i.e., 8 bytes.
- */
- public final double getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * the raw bytes that represent the double value
- */
- public final void setBytes(double bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(bytes = " + bytes + ")";
- }
-
- /**
- * @return Double object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- return new Double(bytes);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantFieldref.java b/src/org/apache/bcel/classfile/ConstantFieldref.java
deleted file mode 100644
index 333c080..0000000
--- a/src/org/apache/bcel/classfile/ConstantFieldref.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents a constant pool reference to a field.
- *
- * @version $Id: ConstantFieldref.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class ConstantFieldref extends ConstantCP {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Initialize from another object.
- */
- public ConstantFieldref(ConstantFieldref c) {
- super(Constants.CONSTANT_Fieldref, c.getClassIndex(), c
- .getNameAndTypeIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * input stream
- * @throws IOException
- */
- ConstantFieldref(DataInputStream file) throws IOException {
- super(Constants.CONSTANT_Fieldref, file);
- }
-
- /**
- * @param class_index
- * Reference to the class containing the Field
- * @param name_and_type_index
- * and the Field signature
- */
- public ConstantFieldref(int class_index, int name_and_type_index) {
- super(Constants.CONSTANT_Fieldref, class_index, name_and_type_index);
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of Fields,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantFieldref(this);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantFloat.java b/src/org/apache/bcel/classfile/ConstantFloat.java
deleted file mode 100644
index 0f94c96..0000000
--- a/src/org/apache/bcel/classfile/ConstantFloat.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a float object.
- *
- * @version $Id: ConstantFloat.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantFloat extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private float bytes;
-
- /**
- * @param bytes
- * Data
- */
- public ConstantFloat(float bytes) {
- super(Constants.CONSTANT_Float);
- this.bytes = bytes;
- }
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- public ConstantFloat(ConstantFloat c) {
- this(c.getBytes());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantFloat(DataInputStream file) throws IOException {
- this(file.readFloat());
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantFloat(this);
- }
-
- /**
- * Dump constant float to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeFloat(bytes);
- }
-
- /**
- * @return data, i.e., 4 bytes.
- */
- public final float getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * the raw bytes that represent this float
- */
- public final void setBytes(float bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(bytes = " + bytes + ")";
- }
-
- /**
- * @return Float object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- return new Float(bytes);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantInteger.java b/src/org/apache/bcel/classfile/ConstantInteger.java
deleted file mode 100644
index b24f552..0000000
--- a/src/org/apache/bcel/classfile/ConstantInteger.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to an int object.
- *
- * @version $Id: ConstantInteger.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantInteger extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int bytes;
-
- /**
- * @param bytes
- * Data
- */
- public ConstantInteger(int bytes) {
- super(Constants.CONSTANT_Integer);
- this.bytes = bytes;
- }
-
- /**
- * Initialize from another object.
- */
- public ConstantInteger(ConstantInteger c) {
- this(c.getBytes());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantInteger(DataInputStream file) throws IOException {
- this(file.readInt());
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantInteger(this);
- }
-
- /**
- * Dump constant integer to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeInt(bytes);
- }
-
- /**
- * @return data, i.e., 4 bytes.
- */
- public final int getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * the raw bytes that represent this integer
- */
- public final void setBytes(int bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(bytes = " + bytes + ")";
- }
-
- /**
- * @return Integer object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- return new Integer(bytes);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantInterfaceMethodref.java b/src/org/apache/bcel/classfile/ConstantInterfaceMethodref.java
deleted file mode 100644
index 4d05ed7..0000000
--- a/src/org/apache/bcel/classfile/ConstantInterfaceMethodref.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents a constant pool reference to an interface method.
- *
- * @version $Id: ConstantInterfaceMethodref.java 386056 2006-03-15 11:31:56Z
- * tcurdt $
- * @author M. Dahm
- */
-public final class ConstantInterfaceMethodref extends ConstantCP {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Initialize from another object.
- */
- public ConstantInterfaceMethodref(ConstantInterfaceMethodref c) {
- super(Constants.CONSTANT_InterfaceMethodref, c.getClassIndex(), c
- .getNameAndTypeIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * input stream
- * @throws IOException
- */
- ConstantInterfaceMethodref(DataInputStream file) throws IOException {
- super(Constants.CONSTANT_InterfaceMethodref, file);
- }
-
- /**
- * @param class_index
- * Reference to the class containing the method
- * @param name_and_type_index
- * and the method signature
- */
- public ConstantInterfaceMethodref(int class_index, int name_and_type_index) {
- super(Constants.CONSTANT_InterfaceMethodref, class_index,
- name_and_type_index);
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantInterfaceMethodref(this);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantLong.java b/src/org/apache/bcel/classfile/ConstantLong.java
deleted file mode 100644
index 8a6f0f1..0000000
--- a/src/org/apache/bcel/classfile/ConstantLong.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a long object.
- *
- * @version $Id: ConstantLong.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantLong extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private long bytes;
-
- /**
- * @param bytes
- * Data
- */
- public ConstantLong(long bytes) {
- super(Constants.CONSTANT_Long);
- this.bytes = bytes;
- }
-
- /**
- * Initialize from another object.
- */
- public ConstantLong(ConstantLong c) {
- this(c.getBytes());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantLong(DataInputStream file) throws IOException {
- this(file.readLong());
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantLong(this);
- }
-
- /**
- * Dump constant long to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeLong(bytes);
- }
-
- /**
- * @return data, i.e., 8 bytes.
- */
- public final long getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * thr raw bytes that represent this long
- */
- public final void setBytes(long bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(bytes = " + bytes + ")";
- }
-
- /**
- * @return Long object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- return new Long(bytes);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantMethodref.java b/src/org/apache/bcel/classfile/ConstantMethodref.java
deleted file mode 100644
index ebd001a..0000000
--- a/src/org/apache/bcel/classfile/ConstantMethodref.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents a constant pool reference to a method.
- *
- * @version $Id: ConstantMethodref.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class ConstantMethodref extends ConstantCP {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Initialize from another object.
- */
- public ConstantMethodref(ConstantMethodref c) {
- super(Constants.CONSTANT_Methodref, c.getClassIndex(), c
- .getNameAndTypeIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * input stream
- * @throws IOException
- */
- ConstantMethodref(DataInputStream file) throws IOException {
- super(Constants.CONSTANT_Methodref, file);
- }
-
- /**
- * @param class_index
- * Reference to the class containing the method
- * @param name_and_type_index
- * and the method signature
- */
- public ConstantMethodref(int class_index, int name_and_type_index) {
- super(Constants.CONSTANT_Methodref, class_index, name_and_type_index);
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantMethodref(this);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantNameAndType.java b/src/org/apache/bcel/classfile/ConstantNameAndType.java
deleted file mode 100644
index ea182e5..0000000
--- a/src/org/apache/bcel/classfile/ConstantNameAndType.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to the name and signature of a field or method.
- *
- * @version $Id: ConstantNameAndType.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantNameAndType extends Constant {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int name_index; // Name of field/method
- private int signature_index; // and its signature.
-
- /**
- * Initialize from another object.
- */
- public ConstantNameAndType(ConstantNameAndType c) {
- this(c.getNameIndex(), c.getSignatureIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantNameAndType(DataInputStream file) throws IOException {
- this(file.readUnsignedShort(), file.readUnsignedShort());
- }
-
- /**
- * @param name_index
- * Name of field/method
- * @param signature_index
- * and its signature
- */
- public ConstantNameAndType(int name_index, int signature_index) {
- super(Constants.CONSTANT_NameAndType);
- this.name_index = name_index;
- this.signature_index = signature_index;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantNameAndType(this);
- }
-
- /**
- * Dump name and signature index to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeShort(name_index);
- file.writeShort(signature_index);
- }
-
- /**
- * @return Name index in constant pool of field/method name.
- */
- public final int getNameIndex() {
- return name_index;
- }
-
- /**
- * @return name
- */
- public final String getName(ConstantPool cp) {
- return cp.constantToString(getNameIndex(), Constants.CONSTANT_Utf8);
- }
-
- /**
- * @return Index in constant pool of field/method signature.
- */
- public final int getSignatureIndex() {
- return signature_index;
- }
-
- /**
- * @return signature
- */
- public final String getSignature(ConstantPool cp) {
- return cp
- .constantToString(getSignatureIndex(), Constants.CONSTANT_Utf8);
- }
-
- /**
- * @param name_index
- * the name index of this constant
- */
- public final void setNameIndex(int name_index) {
- this.name_index = name_index;
- }
-
- /**
- * @param signature_index
- * the signature index in the constant pool of this type
- */
- public final void setSignatureIndex(int signature_index) {
- this.signature_index = signature_index;
- }
-
- /**
- * @return String representation
- */
- @Override
- public final String toString() {
- return super.toString() + "(name_index = " + name_index
- + ", signature_index = " + signature_index + ")";
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantObject.java b/src/org/apache/bcel/classfile/ConstantObject.java
deleted file mode 100644
index cded347..0000000
--- a/src/org/apache/bcel/classfile/ConstantObject.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-/**
- * This interface denotes those constants that have a "natural" value, such as
- * ConstantLong, ConstantString, etc..
- *
- * @version $Id: ConstantObject.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public interface ConstantObject {
-
- /**
- * @return object representing the constant, e.g., Long for ConstantLong
- */
- public abstract Object getConstantValue(ConstantPool cp);
-}
diff --git a/src/org/apache/bcel/classfile/ConstantPool.java b/src/org/apache/bcel/classfile/ConstantPool.java
deleted file mode 100644
index e7cd240..0000000
--- a/src/org/apache/bcel/classfile/ConstantPool.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents the constant pool, i.e., a table of constants, of a
- * parsed classfile. It may contain null references, due to the JVM
- * specification that skips an entry after an 8-byte constant (double, long)
- * entry. Those interested in generating constant pools programatically should
- * see ConstantPoolGen.
- *
- * @version $Id: ConstantPool.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @see Constant
- * @see org.apache.bcel.generic.ConstantPoolGen
- * @author M. Dahm
- */
-public class ConstantPool implements Cloneable, Node, Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int constant_pool_count;
- private Constant[] constant_pool;
-
- /**
- * @param constant_pool
- * Array of constants
- */
- public ConstantPool(Constant[] constant_pool) {
- setConstantPool(constant_pool);
- }
-
- /**
- * Read constants from given file stream.
- *
- * @param file
- * Input stream
- * @throws IOException
- * @throws ClassFormatException
- */
- ConstantPool(DataInputStream file) throws IOException, ClassFormatException {
- byte tag;
- constant_pool_count = file.readUnsignedShort();
- constant_pool = new Constant[constant_pool_count];
- /*
- * constant_pool[0] is unused by the compiler and may be used freely by
- * the implementation.
- */
- for (int i = 1; i < constant_pool_count; i++) {
- constant_pool[i] = Constant.readConstant(file);
- /*
- * Quote from the JVM specification: "All eight byte constants take
- * up two spots in the constant pool. If this is the n'th byte in
- * the constant pool, then the next item will be numbered n+2"
- *
- * Thus we have to increment the index counter.
- */
- tag = constant_pool[i].getTag();
- if ((tag == Constants.CONSTANT_Double)
- || (tag == Constants.CONSTANT_Long)) {
- i++;
- }
- }
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantPool(this);
- }
-
- /**
- * Resolve constant to a string representation.
- *
- * @param c
- * Constant to be printed
- * @return String representation
- */
- public String constantToString(Constant c) throws ClassFormatException {
- String str;
- int i;
- byte tag = c.getTag();
- switch (tag) {
- case Constants.CONSTANT_Class:
- i = ((ConstantClass) c).getNameIndex();
- c = getConstant(i, Constants.CONSTANT_Utf8);
- str = Utility
- .compactClassName(((ConstantUtf8) c).getBytes(), false);
- break;
- case Constants.CONSTANT_String:
- i = ((ConstantString) c).getStringIndex();
- c = getConstant(i, Constants.CONSTANT_Utf8);
- str = "\"" + escape(((ConstantUtf8) c).getBytes()) + "\"";
- break;
- case Constants.CONSTANT_Utf8:
- str = ((ConstantUtf8) c).getBytes();
- break;
- case Constants.CONSTANT_Double:
- str = "" + ((ConstantDouble) c).getBytes();
- break;
- case Constants.CONSTANT_Float:
- str = "" + ((ConstantFloat) c).getBytes();
- break;
- case Constants.CONSTANT_Long:
- str = "" + ((ConstantLong) c).getBytes();
- break;
- case Constants.CONSTANT_Integer:
- str = "" + ((ConstantInteger) c).getBytes();
- break;
- case Constants.CONSTANT_NameAndType:
- str = (constantToString(((ConstantNameAndType) c).getNameIndex(),
- Constants.CONSTANT_Utf8) + " " + constantToString(
- ((ConstantNameAndType) c).getSignatureIndex(),
- Constants.CONSTANT_Utf8));
- break;
- case Constants.CONSTANT_InterfaceMethodref:
- case Constants.CONSTANT_Methodref:
- case Constants.CONSTANT_Fieldref:
- str = (constantToString(((ConstantCP) c).getClassIndex(),
- Constants.CONSTANT_Class) + "." + constantToString(
- ((ConstantCP) c).getNameAndTypeIndex(),
- Constants.CONSTANT_NameAndType));
- break;
- default: // Never reached
- throw new RuntimeException("Unknown constant type " + tag);
- }
- return str;
- }
-
- private static final String escape(String str) {
- int len = str.length();
- StringBuffer buf = new StringBuffer(len + 5);
- char[] ch = str.toCharArray();
- for (int i = 0; i < len; i++) {
- switch (ch[i]) {
- case '\n':
- buf.append("\\n");
- break;
- case '\r':
- buf.append("\\r");
- break;
- case '\t':
- buf.append("\\t");
- break;
- case '\b':
- buf.append("\\b");
- break;
- case '"':
- buf.append("\\\"");
- break;
- default:
- buf.append(ch[i]);
- }
- }
- return buf.toString();
- }
-
- /**
- * Retrieve constant at `index' from constant pool and resolve it to a
- * string representation.
- *
- * @param index
- * of constant in constant pool
- * @param tag
- * expected type
- * @return String representation
- */
- public String constantToString(int index, byte tag)
- throws ClassFormatException {
- Constant c = getConstant(index, tag);
- return constantToString(c);
- }
-
- /**
- * Dump constant pool to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- public void dump(DataOutputStream file) throws IOException {
- file.writeShort(constant_pool_count);
- for (int i = 1; i < constant_pool_count; i++) {
- if (constant_pool[i] != null) {
- constant_pool[i].dump(file);
- }
- }
- }
-
- /**
- * Get constant from constant pool.
- *
- * @param index
- * Index in constant pool
- * @return Constant value
- * @see Constant
- */
- public Constant getConstant(int index) {
- if (index >= constant_pool.length || index < 0) {
- throw new ClassFormatException("Invalid constant pool reference: "
- + index + ". Constant pool size is: "
- + constant_pool.length);
- }
- return constant_pool[index];
- }
-
- /**
- * Get constant from constant pool and check whether it has the expected
- * type.
- *
- * @param index
- * Index in constant pool
- * @param tag
- * Tag of expected constant, i.e., its type
- * @return Constant value
- * @see Constant
- * @throws ClassFormatException
- */
- public Constant getConstant(int index, byte tag)
- throws ClassFormatException {
- Constant c;
- c = getConstant(index);
- if (c == null) {
- throw new ClassFormatException("Constant pool at index " + index
- + " is null.");
- }
- if (c.getTag() != tag) {
- throw new ClassFormatException("Expected class `"
- + Constants.CONSTANT_NAMES[tag] + "' at index " + index
- + " and got " + c);
- }
- return c;
- }
-
- /**
- * @return Array of constants.
- * @see Constant
- */
- public Constant[] getConstantPool() {
- return constant_pool;
- }
-
- /**
- * Get string from constant pool and bypass the indirection of
- * `ConstantClass' and `ConstantString' objects. I.e. these classes have an
- * index field that points to another entry of the constant pool of type
- * `ConstantUtf8' which contains the real data.
- *
- * @param index
- * Index in constant pool
- * @param tag
- * Tag of expected constant, either ConstantClass or
- * ConstantString
- * @return Contents of string reference
- * @see ConstantClass
- * @see ConstantString
- * @throws ClassFormatException
- */
- public String getConstantString(int index, byte tag)
- throws ClassFormatException {
- Constant c;
- int i;
- c = getConstant(index, tag);
- /*
- * This switch() is not that elegant, since the two classes have the
- * same contents, they just differ in the name of the index field
- * variable. But we want to stick to the JVM naming conventions closely
- * though we could have solved these more elegantly by using the same
- * variable name or by subclassing.
- */
- switch (tag) {
- case Constants.CONSTANT_Class:
- i = ((ConstantClass) c).getNameIndex();
- break;
- case Constants.CONSTANT_String:
- i = ((ConstantString) c).getStringIndex();
- break;
- default:
- throw new RuntimeException(
- "getConstantString called with illegal tag " + tag);
- }
- // Finally get the string from the constant pool
- c = getConstant(i, Constants.CONSTANT_Utf8);
- return ((ConstantUtf8) c).getBytes();
- }
-
- /**
- * @return Length of constant pool.
- */
- public int getLength() {
- return constant_pool_count;
- }
-
- /**
- * @param constant
- * Constant to set
- */
- public void setConstant(int index, Constant constant) {
- constant_pool[index] = constant;
- }
-
- /**
- * @param constant_pool
- */
- public void setConstantPool(Constant[] constant_pool) {
- this.constant_pool = constant_pool;
- constant_pool_count = (constant_pool == null) ? 0
- : constant_pool.length;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public String toString() {
- StringBuffer buf = new StringBuffer();
- for (int i = 1; i < constant_pool_count; i++) {
- buf.append(i).append(")").append(constant_pool[i]).append("\n");
- }
- return buf.toString();
- }
-
- /**
- * @return deep copy of this constant pool
- */
- public ConstantPool copy() {
- ConstantPool c = null;
- try {
- c = (ConstantPool) clone();
- c.constant_pool = new Constant[constant_pool_count];
- for (int i = 1; i < constant_pool_count; i++) {
- if (constant_pool[i] != null) {
- c.constant_pool[i] = constant_pool[i].copy();
- }
- }
- } catch (CloneNotSupportedException e) {
- }
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantString.java b/src/org/apache/bcel/classfile/ConstantString.java
deleted file mode 100644
index ff38c9e..0000000
--- a/src/org/apache/bcel/classfile/ConstantString.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a String object.
- *
- * @version $Id: ConstantString.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantString extends Constant implements ConstantObject {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int string_index; // Identical to ConstantClass except for this name
-
- /**
- * Initialize from another object.
- */
- public ConstantString(ConstantString c) {
- this(c.getStringIndex());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantString(DataInputStream file) throws IOException {
- this(file.readUnsignedShort());
- }
-
- /**
- * @param string_index
- * Index of Constant_Utf8 in constant pool
- */
- public ConstantString(int string_index) {
- super(Constants.CONSTANT_String);
- this.string_index = string_index;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantString(this);
- }
-
- /**
- * Dump constant field reference to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeShort(string_index);
- }
-
- /**
- * @return Index in constant pool of the string (ConstantUtf8).
- */
- public final int getStringIndex() {
- return string_index;
- }
-
- /**
- * @param string_index
- * the index into the constant of the string value
- */
- public final void setStringIndex(int string_index) {
- this.string_index = string_index;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return super.toString() + "(string_index = " + string_index + ")";
- }
-
- /**
- * @return String object
- */
- @Override
- public Object getConstantValue(ConstantPool cp) {
- Constant c = cp.getConstant(string_index, Constants.CONSTANT_Utf8);
- return ((ConstantUtf8) c).getBytes();
- }
-
- /**
- * @return dereferenced string
- */
- public String getBytes(ConstantPool cp) {
- return (String) getConstantValue(cp);
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantUtf8.java b/src/org/apache/bcel/classfile/ConstantUtf8.java
deleted file mode 100644
index a4df998..0000000
--- a/src/org/apache/bcel/classfile/ConstantUtf8.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from the abstract Constant class and
- * represents a reference to a Utf8 encoded string.
- *
- * @version $Id: ConstantUtf8.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public final class ConstantUtf8 extends Constant {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private String bytes;
-
- /**
- * Initialize from another object.
- */
- public ConstantUtf8(ConstantUtf8 c) {
- this(c.getBytes());
- }
-
- /**
- * Initialize instance from file data.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- ConstantUtf8(DataInputStream file) throws IOException {
- super(Constants.CONSTANT_Utf8);
- bytes = file.readUTF();
- }
-
- /**
- * @param bytes
- * Data
- */
- public ConstantUtf8(String bytes) {
- super(Constants.CONSTANT_Utf8);
- if (bytes == null) {
- throw new IllegalArgumentException("bytes must not be null!");
- }
- this.bytes = bytes;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantUtf8(this);
- }
-
- /**
- * Dump String in Utf8 format to file stream.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- file.writeByte(tag);
- file.writeUTF(bytes);
- }
-
- /**
- * @return Data converted to string.
- */
- public final String getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * the raw bytes of this Utf-8
- */
- public final void setBytes(String bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return String representation
- */
- @Override
- public final String toString() {
- return super.toString() + "(\"" + Utility.replace(bytes, "\n", "\\n")
- + "\")";
- }
-}
diff --git a/src/org/apache/bcel/classfile/ConstantValue.java b/src/org/apache/bcel/classfile/ConstantValue.java
deleted file mode 100644
index dbb41e3..0000000
--- a/src/org/apache/bcel/classfile/ConstantValue.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from Attribute and represents a constant
- * value, i.e., a default value for initializing a class field. This class is
- * instantiated by the Attribute.readAttribute() method.
- *
- * @version $Id: ConstantValue.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Attribute
- */
-public final class ConstantValue extends Attribute {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int constantvalue_index;
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- public ConstantValue(ConstantValue c) {
- this(c.getNameIndex(), c.getLength(), c.getConstantValueIndex(), c
- .getConstantPool());
- }
-
- /**
- * Construct object from file stream.
- *
- * @param name_index
- * Name index in constant pool
- * @param length
- * Content length in bytes
- * @param file
- * Input stream
- * @param constant_pool
- * Array of constants
- * @throws IOException
- */
- ConstantValue(int name_index, int length, DataInputStream file,
- ConstantPool constant_pool) throws IOException {
- this(name_index, length, file.readUnsignedShort(), constant_pool);
- }
-
- /**
- * @param name_index
- * Name index in constant pool
- * @param length
- * Content length in bytes
- * @param constantvalue_index
- * Index in constant pool
- * @param constant_pool
- * Array of constants
- */
- public ConstantValue(int name_index, int length, int constantvalue_index,
- ConstantPool constant_pool) {
- super(Constants.ATTR_CONSTANT_VALUE, name_index, length, constant_pool);
- this.constantvalue_index = constantvalue_index;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitConstantValue(this);
- }
-
- /**
- * Dump constant value attribute to file stream on binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- super.dump(file);
- file.writeShort(constantvalue_index);
- }
-
- /**
- * @return Index in constant pool of constant value.
- */
- public final int getConstantValueIndex() {
- return constantvalue_index;
- }
-
- /**
- * @param constantvalue_index
- * the index info the constant pool of this constant value
- */
- public final void setConstantValueIndex(int constantvalue_index) {
- this.constantvalue_index = constantvalue_index;
- }
-
- /**
- * @return String representation of constant value.
- */
- @Override
- public final String toString() {
- Constant c = constant_pool.getConstant(constantvalue_index);
- String buf;
- int i;
- // Print constant to string depending on its type
- switch (c.getTag()) {
- case Constants.CONSTANT_Long:
- buf = "" + ((ConstantLong) c).getBytes();
- break;
- case Constants.CONSTANT_Float:
- buf = "" + ((ConstantFloat) c).getBytes();
- break;
- case Constants.CONSTANT_Double:
- buf = "" + ((ConstantDouble) c).getBytes();
- break;
- case Constants.CONSTANT_Integer:
- buf = "" + ((ConstantInteger) c).getBytes();
- break;
- case Constants.CONSTANT_String:
- i = ((ConstantString) c).getStringIndex();
- c = constant_pool.getConstant(i, Constants.CONSTANT_Utf8);
- buf = "\"" + Utility.convertString(((ConstantUtf8) c).getBytes())
- + "\"";
- break;
- default:
- throw new IllegalStateException("Type of ConstValue invalid: " + c);
- }
- return buf;
- }
-
- /**
- * @return deep copy of this attribute
- */
- @Override
- public Attribute copy(ConstantPool _constant_pool) {
- ConstantValue c = (ConstantValue) clone();
- c.constant_pool = _constant_pool;
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/Deprecated.java b/src/org/apache/bcel/classfile/Deprecated.java
deleted file mode 100644
index 17531cd..0000000
--- a/src/org/apache/bcel/classfile/Deprecated.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from Attribute and denotes that this is a
- * deprecated method. It is instantiated from the
- * Attribute.readAttribute() method.
- *
- * @version $Id: Deprecated.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Attribute
- */
-public final class Deprecated extends Attribute {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private byte[] bytes;
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- public Deprecated(Deprecated c) {
- this(c.getNameIndex(), c.getLength(), c.getBytes(), c.getConstantPool());
- }
-
- /**
- * @param name_index
- * Index in constant pool to CONSTANT_Utf8
- * @param length
- * Content length in bytes
- * @param bytes
- * Attribute contents
- * @param constant_pool
- * Array of constants
- */
- public Deprecated(int name_index, int length, byte[] bytes,
- ConstantPool constant_pool) {
- super(Constants.ATTR_DEPRECATED, name_index, length, constant_pool);
- this.bytes = bytes;
- }
-
- /**
- * Construct object from file stream.
- *
- * @param name_index
- * Index in constant pool to CONSTANT_Utf8
- * @param length
- * Content length in bytes
- * @param file
- * Input stream
- * @param constant_pool
- * Array of constants
- * @throws IOException
- */
- Deprecated(int name_index, int length, DataInputStream file,
- ConstantPool constant_pool) throws IOException {
- this(name_index, length, (byte[]) null, constant_pool);
- if (length > 0) {
- bytes = new byte[length];
- file.readFully(bytes);
- System.err.println("Deprecated attribute with length > 0");
- }
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitDeprecated(this);
- }
-
- /**
- * Dump source file attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- super.dump(file);
- if (length > 0) {
- file.write(bytes, 0, length);
- }
- }
-
- /**
- * @return data bytes.
- */
- public final byte[] getBytes() {
- return bytes;
- }
-
- /**
- * @param bytes
- * the raw bytes that represents this byte array
- */
- public final void setBytes(byte[] bytes) {
- this.bytes = bytes;
- }
-
- /**
- * @return attribute name
- */
- @Override
- public final String toString() {
- return Constants.ATTRIBUTE_NAMES[Constants.ATTR_DEPRECATED];
- }
-
- /**
- * @return deep copy of this attribute
- */
- @Override
- public Attribute copy(ConstantPool _constant_pool) {
- Deprecated c = (Deprecated) clone();
- if (bytes != null) {
- c.bytes = new byte[bytes.length];
- System.arraycopy(bytes, 0, c.bytes, 0, bytes.length);
- }
- c.constant_pool = _constant_pool;
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/DescendingVisitor.java b/src/org/apache/bcel/classfile/DescendingVisitor.java
deleted file mode 100644
index cef7cac..0000000
--- a/src/org/apache/bcel/classfile/DescendingVisitor.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.util.Stack;
-
-/**
- * Traverses a JavaClass with another Visitor object 'piggy-backed' that is
- * applied to all components of a JavaClass object. I.e. this class supplies the
- * traversal strategy, other classes can make use of it.
- *
- * @version $Id: DescendingVisitor.java 388707 2006-03-25 05:40:28Z tcurdt $
- * @author M. Dahm
- */
-public class DescendingVisitor implements Visitor {
-
- private JavaClass clazz;
- private Visitor visitor;
- private Stack stack = new Stack();
-
- /**
- * @return container of current entitity, i.e., predecessor during traversal
- */
- public Object predecessor() {
- return predecessor(0);
- }
-
- /**
- * @param level
- * nesting level, i.e., 0 returns the direct predecessor
- * @return container of current entitity, i.e., predecessor during traversal
- */
- public Object predecessor(int level) {
- int size = stack.size();
- if ((size < 2) || (level < 0)) {
- return null;
- } else {
- return stack.elementAt(size - (level + 2)); // size - 1 == current
- }
- }
-
- /**
- * @return current object
- */
- public Object current() {
- return stack.peek();
- }
-
- /**
- * @param clazz
- * Class to traverse
- * @param visitor
- * visitor object to apply to all components
- */
- public DescendingVisitor(JavaClass clazz, Visitor visitor) {
- this.clazz = clazz;
- this.visitor = visitor;
- }
-
- /**
- * Start traversal.
- */
- public void visit() {
- clazz.accept(this);
- }
-
- @Override
- public void visitJavaClass(JavaClass _clazz) {
- stack.push(_clazz);
- _clazz.accept(visitor);
- Field[] fields = _clazz.getFields();
- for (int i = 0; i < fields.length; i++) {
- fields[i].accept(this);
- }
- Method[] methods = _clazz.getMethods();
- for (int i = 0; i < methods.length; i++) {
- methods[i].accept(this);
- }
- Attribute[] attributes = _clazz.getAttributes();
- for (int i = 0; i < attributes.length; i++) {
- attributes[i].accept(this);
- }
- _clazz.getConstantPool().accept(this);
- stack.pop();
- }
-
- @Override
- public void visitField(Field field) {
- stack.push(field);
- field.accept(visitor);
- Attribute[] attributes = field.getAttributes();
- for (int i = 0; i < attributes.length; i++) {
- attributes[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitConstantValue(ConstantValue cv) {
- stack.push(cv);
- cv.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitMethod(Method method) {
- stack.push(method);
- method.accept(visitor);
- Attribute[] attributes = method.getAttributes();
- for (int i = 0; i < attributes.length; i++) {
- attributes[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitExceptionTable(ExceptionTable table) {
- stack.push(table);
- table.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitCode(Code code) {
- stack.push(code);
- code.accept(visitor);
- CodeException[] table = code.getExceptionTable();
- for (int i = 0; i < table.length; i++) {
- table[i].accept(this);
- }
- Attribute[] attributes = code.getAttributes();
- for (int i = 0; i < attributes.length; i++) {
- attributes[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitCodeException(CodeException ce) {
- stack.push(ce);
- ce.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitLineNumberTable(LineNumberTable table) {
- stack.push(table);
- table.accept(visitor);
- LineNumber[] numbers = table.getLineNumberTable();
- for (int i = 0; i < numbers.length; i++) {
- numbers[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitLineNumber(LineNumber number) {
- stack.push(number);
- number.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitLocalVariableTable(LocalVariableTable table) {
- stack.push(table);
- table.accept(visitor);
- LocalVariable[] vars = table.getLocalVariableTable();
- for (int i = 0; i < vars.length; i++) {
- vars[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitStackMap(StackMap table) {
- stack.push(table);
- table.accept(visitor);
- StackMapEntry[] vars = table.getStackMap();
- for (int i = 0; i < vars.length; i++) {
- vars[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitStackMapEntry(StackMapEntry var) {
- stack.push(var);
- var.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitLocalVariable(LocalVariable var) {
- stack.push(var);
- var.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantPool(ConstantPool cp) {
- stack.push(cp);
- cp.accept(visitor);
- Constant[] constants = cp.getConstantPool();
- for (int i = 1; i < constants.length; i++) {
- if (constants[i] != null) {
- constants[i].accept(this);
- }
- }
- stack.pop();
- }
-
- @Override
- public void visitConstantClass(ConstantClass constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantDouble(ConstantDouble constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantFieldref(ConstantFieldref constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantFloat(ConstantFloat constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantInteger(ConstantInteger constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantInterfaceMethodref(
- ConstantInterfaceMethodref constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantLong(ConstantLong constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantMethodref(ConstantMethodref constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantNameAndType(ConstantNameAndType constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantString(ConstantString constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitConstantUtf8(ConstantUtf8 constant) {
- stack.push(constant);
- constant.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitInnerClasses(InnerClasses ic) {
- stack.push(ic);
- ic.accept(visitor);
- InnerClass[] ics = ic.getInnerClasses();
- for (int i = 0; i < ics.length; i++) {
- ics[i].accept(this);
- }
- stack.pop();
- }
-
- @Override
- public void visitInnerClass(InnerClass inner) {
- stack.push(inner);
- inner.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitDeprecated(Deprecated attribute) {
- stack.push(attribute);
- attribute.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitSignature(Signature attribute) {
- stack.push(attribute);
- attribute.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitSourceFile(SourceFile attribute) {
- stack.push(attribute);
- attribute.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitSynthetic(Synthetic attribute) {
- stack.push(attribute);
- attribute.accept(visitor);
- stack.pop();
- }
-
- @Override
- public void visitUnknown(Unknown attribute) {
- stack.push(attribute);
- attribute.accept(visitor);
- stack.pop();
- }
-}
diff --git a/src/org/apache/bcel/classfile/EmptyVisitor.java b/src/org/apache/bcel/classfile/EmptyVisitor.java
deleted file mode 100644
index 23e1794..0000000
--- a/src/org/apache/bcel/classfile/EmptyVisitor.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-/**
- * Visitor with empty method bodies, can be extended and used in conjunction
- * with the DescendingVisitor class, e.g.
- *
- * By courtesy of David Spencer.
- *
- * @see DescendingVisitor
- * @version $Id: EmptyVisitor.java 388707 2006-03-25 05:40:28Z tcurdt $
- *
- */
-public class EmptyVisitor implements Visitor {
-
- protected EmptyVisitor() {
- }
-
- @Override
- public void visitCode(Code obj) {
- }
-
- @Override
- public void visitCodeException(CodeException obj) {
- }
-
- @Override
- public void visitConstantClass(ConstantClass obj) {
- }
-
- @Override
- public void visitConstantDouble(ConstantDouble obj) {
- }
-
- @Override
- public void visitConstantFieldref(ConstantFieldref obj) {
- }
-
- @Override
- public void visitConstantFloat(ConstantFloat obj) {
- }
-
- @Override
- public void visitConstantInteger(ConstantInteger obj) {
- }
-
- @Override
- public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj) {
- }
-
- @Override
- public void visitConstantLong(ConstantLong obj) {
- }
-
- @Override
- public void visitConstantMethodref(ConstantMethodref obj) {
- }
-
- @Override
- public void visitConstantNameAndType(ConstantNameAndType obj) {
- }
-
- @Override
- public void visitConstantPool(ConstantPool obj) {
- }
-
- @Override
- public void visitConstantString(ConstantString obj) {
- }
-
- @Override
- public void visitConstantUtf8(ConstantUtf8 obj) {
- }
-
- @Override
- public void visitConstantValue(ConstantValue obj) {
- }
-
- @Override
- public void visitDeprecated(Deprecated obj) {
- }
-
- @Override
- public void visitExceptionTable(ExceptionTable obj) {
- }
-
- @Override
- public void visitField(Field obj) {
- }
-
- @Override
- public void visitInnerClass(InnerClass obj) {
- }
-
- @Override
- public void visitInnerClasses(InnerClasses obj) {
- }
-
- @Override
- public void visitJavaClass(JavaClass obj) {
- }
-
- @Override
- public void visitLineNumber(LineNumber obj) {
- }
-
- @Override
- public void visitLineNumberTable(LineNumberTable obj) {
- }
-
- @Override
- public void visitLocalVariable(LocalVariable obj) {
- }
-
- @Override
- public void visitLocalVariableTable(LocalVariableTable obj) {
- }
-
- @Override
- public void visitMethod(Method obj) {
- }
-
- @Override
- public void visitSignature(Signature obj) {
- }
-
- @Override
- public void visitSourceFile(SourceFile obj) {
- }
-
- @Override
- public void visitSynthetic(Synthetic obj) {
- }
-
- @Override
- public void visitUnknown(Unknown obj) {
- }
-
- @Override
- public void visitStackMap(StackMap obj) {
- }
-
- @Override
- public void visitStackMapEntry(StackMapEntry obj) {
- }
-}
diff --git a/src/org/apache/bcel/classfile/ExceptionTable.java b/src/org/apache/bcel/classfile/ExceptionTable.java
deleted file mode 100644
index 59a08ff..0000000
--- a/src/org/apache/bcel/classfile/ExceptionTable.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents the table of exceptions that are thrown by a method.
- * This attribute may be used once per method. The name of this class is
- * ExceptionTable for historical reasons; The Java Virtual Machine
- * Specification, Second Edition defines this attribute using the name
- * Exceptions (which is inconsistent with the other classes).
- *
- * @version $Id: ExceptionTable.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Code
- */
-public final class ExceptionTable extends Attribute {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int number_of_exceptions; // Table of indices into
- private int[] exception_index_table; // constant pool
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use copy() for a physical copy.
- */
- public ExceptionTable(ExceptionTable c) {
- this(c.getNameIndex(), c.getLength(), c.getExceptionIndexTable(), c
- .getConstantPool());
- }
-
- /**
- * @param name_index
- * Index in constant pool
- * @param length
- * Content length in bytes
- * @param exception_index_table
- * Table of indices in constant pool
- * @param constant_pool
- * Array of constants
- */
- public ExceptionTable(int name_index, int length,
- int[] exception_index_table, ConstantPool constant_pool) {
- super(Constants.ATTR_EXCEPTIONS, name_index, length, constant_pool);
- setExceptionIndexTable(exception_index_table);
- }
-
- /**
- * Construct object from file stream.
- *
- * @param name_index
- * Index in constant pool
- * @param length
- * Content length in bytes
- * @param file
- * Input stream
- * @param constant_pool
- * Array of constants
- * @throws IOException
- */
- ExceptionTable(int name_index, int length, DataInputStream file,
- ConstantPool constant_pool) throws IOException {
- this(name_index, length, (int[]) null, constant_pool);
- number_of_exceptions = file.readUnsignedShort();
- exception_index_table = new int[number_of_exceptions];
- for (int i = 0; i < number_of_exceptions; i++) {
- exception_index_table[i] = file.readUnsignedShort();
- }
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionTable(this);
- }
-
- /**
- * Dump exceptions attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- super.dump(file);
- file.writeShort(number_of_exceptions);
- for (int i = 0; i < number_of_exceptions; i++) {
- file.writeShort(exception_index_table[i]);
- }
- }
-
- /**
- * @return Array of indices into constant pool of thrown exceptions.
- */
- public final int[] getExceptionIndexTable() {
- return exception_index_table;
- }
-
- /**
- * @return Length of exception table.
- */
- public final int getNumberOfExceptions() {
- return number_of_exceptions;
- }
-
- /**
- * @return class names of thrown exceptions
- */
- public final String[] getExceptionNames() {
- String[] names = new String[number_of_exceptions];
- for (int i = 0; i < number_of_exceptions; i++) {
- names[i] = constant_pool.getConstantString(
- exception_index_table[i], Constants.CONSTANT_Class)
- .replace('/', '.');
- }
- return names;
- }
-
- /**
- * @param exception_index_table
- * the list of exception indexes Also redefines
- * number_of_exceptions according to table length.
- */
- public final void setExceptionIndexTable(int[] exception_index_table) {
- this.exception_index_table = exception_index_table;
- number_of_exceptions = (exception_index_table == null) ? 0
- : exception_index_table.length;
- }
-
- /**
- * @return String representation, i.e., a list of thrown exceptions.
- */
- @Override
- public final String toString() {
- StringBuffer buf = new StringBuffer("");
- String str;
- for (int i = 0; i < number_of_exceptions; i++) {
- str = constant_pool.getConstantString(exception_index_table[i],
- Constants.CONSTANT_Class);
- buf.append(Utility.compactClassName(str, false));
- if (i < number_of_exceptions - 1) {
- buf.append(", ");
- }
- }
- return buf.toString();
- }
-
- /**
- * @return deep copy of this attribute
- */
- @Override
- public Attribute copy(ConstantPool _constant_pool) {
- ExceptionTable c = (ExceptionTable) clone();
- if (exception_index_table != null) {
- c.exception_index_table = new int[exception_index_table.length];
- System.arraycopy(exception_index_table, 0, c.exception_index_table,
- 0, exception_index_table.length);
- }
- c.constant_pool = _constant_pool;
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/Field.java b/src/org/apache/bcel/classfile/Field.java
deleted file mode 100644
index 4ed0777..0000000
--- a/src/org/apache/bcel/classfile/Field.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-import org.apache.bcel.generic.Type;
-import org.apache.bcel.util.BCELComparator;
-
-/**
- * This class represents the field info structure, i.e., the representation for
- * a variable in the class. See JVM specification for details.
- *
- * @version $Id: Field.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class Field extends FieldOrMethod {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private static BCELComparator _cmp = new BCELComparator() {
-
- @Override
- public boolean equals(Object o1, Object o2) {
- Field THIS = (Field) o1;
- Field THAT = (Field) o2;
- return THIS.getName().equals(THAT.getName())
- && THIS.getSignature().equals(THAT.getSignature());
- }
-
- @Override
- public int hashCode(Object o) {
- Field THIS = (Field) o;
- return THIS.getSignature().hashCode() ^ THIS.getName().hashCode();
- }
- };
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- public Field(Field c) {
- super(c);
- }
-
- /**
- * Construct object from file stream.
- *
- * @param file
- * Input stream
- */
- Field(DataInputStream file, ConstantPool constant_pool) throws IOException,
- ClassFormatException {
- super(file, constant_pool);
- }
-
- /**
- * @param access_flags
- * Access rights of field
- * @param name_index
- * Points to field name in constant pool
- * @param signature_index
- * Points to encoded signature
- * @param attributes
- * Collection of attributes
- * @param constant_pool
- * Array of constants
- */
- public Field(int access_flags, int name_index, int signature_index,
- Attribute[] attributes, ConstantPool constant_pool) {
- super(access_flags, name_index, signature_index, attributes,
- constant_pool);
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitField(this);
- }
-
- /**
- * @return constant value associated with this field (may be null)
- */
- public final ConstantValue getConstantValue() {
- for (int i = 0; i < attributes_count; i++) {
- if (attributes[i].getTag() == Constants.ATTR_CONSTANT_VALUE) {
- return (ConstantValue) attributes[i];
- }
- }
- return null;
- }
-
- /**
- * Return string representation close to declaration format, `public static
- * final short MAX = 100', e.g..
- *
- * @return String representation of field, including the signature.
- */
- @Override
- public final String toString() {
- String name, signature, access; // Short cuts to constant pool
- // Get names from constant pool
- access = Utility.accessToString(access_flags);
- access = access.equals("") ? "" : (access + " ");
- signature = Utility.signatureToString(getSignature());
- name = getName();
- StringBuffer buf = new StringBuffer(64);
- buf.append(access).append(signature).append(" ").append(name);
- ConstantValue cv = getConstantValue();
- if (cv != null) {
- buf.append(" = ").append(cv);
- }
- for (int i = 0; i < attributes_count; i++) {
- Attribute a = attributes[i];
- if (!(a instanceof ConstantValue)) {
- buf.append(" [").append(a.toString()).append("]");
- }
- }
- return buf.toString();
- }
-
- /**
- * @return deep copy of this field
- */
- public final Field copy(ConstantPool _constant_pool) {
- return (Field) copy_(_constant_pool);
- }
-
- /**
- * @return type of field
- */
- public Type getType() {
- return Type.getReturnType(getSignature());
- }
-
- /**
- * @return Comparison strategy object
- */
- public static BCELComparator getComparator() {
- return _cmp;
- }
-
- /**
- * @param comparator
- * Comparison strategy object
- */
- public static void setComparator(BCELComparator comparator) {
- _cmp = comparator;
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default two
- * Field objects are said to be equal when their names and signatures are
- * equal.
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- return _cmp.equals(this, obj);
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default
- * return the hashcode of the field's name XOR signature.
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return _cmp.hashCode(this);
- }
-}
diff --git a/src/org/apache/bcel/classfile/FieldOrMethod.java b/src/org/apache/bcel/classfile/FieldOrMethod.java
deleted file mode 100644
index 03b0fff..0000000
--- a/src/org/apache/bcel/classfile/FieldOrMethod.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * Abstract super class for fields and methods.
- *
- * @version $Id: FieldOrMethod.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class FieldOrMethod extends AccessFlags implements Cloneable,
- Node {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int name_index; // Points to field name in constant pool
- protected int signature_index; // Points to encoded signature
- protected int attributes_count; // No. of attributes
- protected Attribute[] attributes; // Collection of attributes
- protected ConstantPool constant_pool;
-
- FieldOrMethod() {
- }
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- protected FieldOrMethod(FieldOrMethod c) {
- this(c.getAccessFlags(), c.getNameIndex(), c.getSignatureIndex(), c
- .getAttributes(), c.getConstantPool());
- }
-
- /**
- * Construct object from file stream.
- *
- * @param file
- * Input stream
- * @throws IOException
- * @throws ClassFormatException
- */
- protected FieldOrMethod(DataInputStream file, ConstantPool constant_pool)
- throws IOException, ClassFormatException {
- this(file.readUnsignedShort(), file.readUnsignedShort(), file
- .readUnsignedShort(), null, constant_pool);
- attributes_count = file.readUnsignedShort();
- attributes = new Attribute[attributes_count];
- for (int i = 0; i < attributes_count; i++) {
- attributes[i] = Attribute.readAttribute(file, constant_pool);
- }
- }
-
- /**
- * @param access_flags
- * Access rights of method
- * @param name_index
- * Points to field name in constant pool
- * @param signature_index
- * Points to encoded signature
- * @param attributes
- * Collection of attributes
- * @param constant_pool
- * Array of constants
- */
- protected FieldOrMethod(int access_flags, int name_index,
- int signature_index, Attribute[] attributes,
- ConstantPool constant_pool) {
- this.access_flags = access_flags;
- this.name_index = name_index;
- this.signature_index = signature_index;
- this.constant_pool = constant_pool;
- setAttributes(attributes);
- }
-
- /**
- * Dump object to file stream on binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- public final void dump(DataOutputStream file) throws IOException {
- file.writeShort(access_flags);
- file.writeShort(name_index);
- file.writeShort(signature_index);
- file.writeShort(attributes_count);
- for (int i = 0; i < attributes_count; i++) {
- attributes[i].dump(file);
- }
- }
-
- /**
- * @return Collection of object attributes.
- */
- public final Attribute[] getAttributes() {
- return attributes;
- }
-
- /**
- * @param attributes
- * Collection of object attributes.
- */
- public final void setAttributes(Attribute[] attributes) {
- this.attributes = attributes;
- attributes_count = (attributes == null) ? 0 : attributes.length;
- }
-
- /**
- * @return Constant pool used by this object.
- */
- public final ConstantPool getConstantPool() {
- return constant_pool;
- }
-
- /**
- * @param constant_pool
- * Constant pool to be used for this object.
- */
- public final void setConstantPool(ConstantPool constant_pool) {
- this.constant_pool = constant_pool;
- }
-
- /**
- * @return Index in constant pool of object's name.
- */
- public final int getNameIndex() {
- return name_index;
- }
-
- /**
- * @param name_index
- * Index in constant pool of object's name.
- */
- public final void setNameIndex(int name_index) {
- this.name_index = name_index;
- }
-
- /**
- * @return Index in constant pool of field signature.
- */
- public final int getSignatureIndex() {
- return signature_index;
- }
-
- /**
- * @param signature_index
- * Index in constant pool of field signature.
- */
- public final void setSignatureIndex(int signature_index) {
- this.signature_index = signature_index;
- }
-
- /**
- * @return Name of object, i.e., method name or field name
- */
- public final String getName() {
- ConstantUtf8 c;
- c = (ConstantUtf8) constant_pool.getConstant(name_index,
- Constants.CONSTANT_Utf8);
- return c.getBytes();
- }
-
- /**
- * @return String representation of object's type signature (java style)
- */
- public final String getSignature() {
- ConstantUtf8 c;
- c = (ConstantUtf8) constant_pool.getConstant(signature_index,
- Constants.CONSTANT_Utf8);
- return c.getBytes();
- }
-
- /**
- * @return deep copy of this field
- */
- protected FieldOrMethod copy_(ConstantPool _constant_pool) {
- try {
- FieldOrMethod c = (FieldOrMethod) clone();
- c.constant_pool = _constant_pool;
- c.attributes = new Attribute[attributes_count];
- for (int i = 0; i < attributes_count; i++) {
- c.attributes[i] = attributes[i].copy(_constant_pool);
- }
- return c;
- } catch (CloneNotSupportedException e) {
- return null;
- }
- }
-}
diff --git a/src/org/apache/bcel/classfile/InnerClass.java b/src/org/apache/bcel/classfile/InnerClass.java
deleted file mode 100644
index 52cbf32..0000000
--- a/src/org/apache/bcel/classfile/InnerClass.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import org.apache.bcel.Constants;
-
-/**
- * This class represents a inner class attribute, i.e., the class indices of the
- * inner and outer classes, the name and the attributes of the inner class.
- *
- * @version $Id: InnerClass.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see InnerClasses
- */
-public final class InnerClass implements Cloneable, Node, Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int inner_class_index;
- private int outer_class_index;
- private int inner_name_index;
- private int inner_access_flags;
-
- /**
- * Initialize from another object.
- */
- public InnerClass(InnerClass c) {
- this(c.getInnerClassIndex(), c.getOuterClassIndex(), c
- .getInnerNameIndex(), c.getInnerAccessFlags());
- }
-
- /**
- * Construct object from file stream.
- *
- * @param file
- * Input stream
- * @throws IOException
- */
- InnerClass(DataInputStream file) throws IOException {
- this(file.readUnsignedShort(), file.readUnsignedShort(), file
- .readUnsignedShort(), file.readUnsignedShort());
- }
-
- /**
- * @param inner_class_index
- * Class index in constant pool of inner class
- * @param outer_class_index
- * Class index in constant pool of outer class
- * @param inner_name_index
- * Name index in constant pool of inner class
- * @param inner_access_flags
- * Access flags of inner class
- */
- public InnerClass(int inner_class_index, int outer_class_index,
- int inner_name_index, int inner_access_flags) {
- this.inner_class_index = inner_class_index;
- this.outer_class_index = outer_class_index;
- this.inner_name_index = inner_name_index;
- this.inner_access_flags = inner_access_flags;
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitInnerClass(this);
- }
-
- /**
- * Dump inner class attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- public final void dump(DataOutputStream file) throws IOException {
- file.writeShort(inner_class_index);
- file.writeShort(outer_class_index);
- file.writeShort(inner_name_index);
- file.writeShort(inner_access_flags);
- }
-
- /**
- * @return access flags of inner class.
- */
- public final int getInnerAccessFlags() {
- return inner_access_flags;
- }
-
- /**
- * @return class index of inner class.
- */
- public final int getInnerClassIndex() {
- return inner_class_index;
- }
-
- /**
- * @return name index of inner class.
- */
- public final int getInnerNameIndex() {
- return inner_name_index;
- }
-
- /**
- * @return class index of outer class.
- */
- public final int getOuterClassIndex() {
- return outer_class_index;
- }
-
- /**
- * @param inner_access_flags
- * access flags for this inner class
- */
- public final void setInnerAccessFlags(int inner_access_flags) {
- this.inner_access_flags = inner_access_flags;
- }
-
- /**
- * @param inner_class_index
- * index into the constant pool for this class
- */
- public final void setInnerClassIndex(int inner_class_index) {
- this.inner_class_index = inner_class_index;
- }
-
- /**
- * @param inner_name_index
- * index into the constant pool for this class's name
- */
- public final void setInnerNameIndex(int inner_name_index) {
- this.inner_name_index = inner_name_index;
- }
-
- /**
- * @param outer_class_index
- * index into the constant pool for the owning class
- */
- public final void setOuterClassIndex(int outer_class_index) {
- this.outer_class_index = outer_class_index;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- return "InnerClass(" + inner_class_index + ", " + outer_class_index
- + ", " + inner_name_index + ", " + inner_access_flags + ")";
- }
-
- /**
- * @return Resolved string representation
- */
- public final String toString(ConstantPool constant_pool) {
- String inner_class_name, outer_class_name, inner_name, access;
- inner_class_name = constant_pool.getConstantString(inner_class_index,
- Constants.CONSTANT_Class);
- inner_class_name = Utility.compactClassName(inner_class_name);
- if (outer_class_index != 0) {
- outer_class_name = constant_pool.getConstantString(
- outer_class_index, Constants.CONSTANT_Class);
- outer_class_name = Utility.compactClassName(outer_class_name);
- } else {
- outer_class_name = "";
- }
- if (inner_name_index != 0) {
- inner_name = ((ConstantUtf8) constant_pool.getConstant(
- inner_name_index, Constants.CONSTANT_Utf8)).getBytes();
- } else {
- inner_name = "";
- }
- access = Utility.accessToString(inner_access_flags, true);
- access = access.equals("") ? "" : (access + " ");
- return "InnerClass:" + access + inner_class_name + "(\""
- + outer_class_name + "\", \"" + inner_name + "\")";
- }
-
- /**
- * @return deep copy of this object
- */
- public InnerClass copy() {
- try {
- return (InnerClass) clone();
- } catch (CloneNotSupportedException e) {
- }
- return null;
- }
-}
diff --git a/src/org/apache/bcel/classfile/InnerClasses.java b/src/org/apache/bcel/classfile/InnerClasses.java
deleted file mode 100644
index d47e3ed..0000000
--- a/src/org/apache/bcel/classfile/InnerClasses.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-
-/**
- * This class is derived from Attribute and denotes that this class is
- * an Inner class of another. to the source file of this class. It is
- * instantiated from the Attribute.readAttribute() method.
- *
- * @version $Id: InnerClasses.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Attribute
- */
-public final class InnerClasses extends Attribute {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private InnerClass[] inner_classes;
- private int number_of_classes;
-
- /**
- * Initialize from another object. Note that both objects use the same
- * references (shallow copy). Use clone() for a physical copy.
- */
- public InnerClasses(InnerClasses c) {
- this(c.getNameIndex(), c.getLength(), c.getInnerClasses(), c
- .getConstantPool());
- }
-
- /**
- * @param name_index
- * Index in constant pool to CONSTANT_Utf8
- * @param length
- * Content length in bytes
- * @param inner_classes
- * array of inner classes attributes
- * @param constant_pool
- * Array of constants
- */
- public InnerClasses(int name_index, int length, InnerClass[] inner_classes,
- ConstantPool constant_pool) {
- super(Constants.ATTR_INNER_CLASSES, name_index, length, constant_pool);
- setInnerClasses(inner_classes);
- }
-
- /**
- * Construct object from file stream.
- *
- * @param name_index
- * Index in constant pool to CONSTANT_Utf8
- * @param length
- * Content length in bytes
- * @param file
- * Input stream
- * @param constant_pool
- * Array of constants
- * @throws IOException
- */
- InnerClasses(int name_index, int length, DataInputStream file,
- ConstantPool constant_pool) throws IOException {
- this(name_index, length, (InnerClass[]) null, constant_pool);
- number_of_classes = file.readUnsignedShort();
- inner_classes = new InnerClass[number_of_classes];
- for (int i = 0; i < number_of_classes; i++) {
- inner_classes[i] = new InnerClass(file);
- }
- }
-
- /**
- * Called by objects that are traversing the nodes of the tree implicitely
- * defined by the contents of a Java class. I.e., the hierarchy of methods,
- * fields, attributes, etc. spawns a tree of objects.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitInnerClasses(this);
- }
-
- /**
- * Dump source file attribute to file stream in binary format.
- *
- * @param file
- * Output file stream
- * @throws IOException
- */
- @Override
- public final void dump(DataOutputStream file) throws IOException {
- super.dump(file);
- file.writeShort(number_of_classes);
- for (int i = 0; i < number_of_classes; i++) {
- inner_classes[i].dump(file);
- }
- }
-
- /**
- * @return array of inner class "records"
- */
- public final InnerClass[] getInnerClasses() {
- return inner_classes;
- }
-
- /**
- * @param inner_classes
- * the array of inner classes
- */
- public final void setInnerClasses(InnerClass[] inner_classes) {
- this.inner_classes = inner_classes;
- number_of_classes = (inner_classes == null) ? 0 : inner_classes.length;
- }
-
- /**
- * @return String representation.
- */
- @Override
- public final String toString() {
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < number_of_classes; i++) {
- buf.append(inner_classes[i].toString(constant_pool)).append("\n");
- }
- return buf.toString();
- }
-
- /**
- * @return deep copy of this attribute
- */
- @Override
- public Attribute copy(ConstantPool _constant_pool) {
- InnerClasses c = (InnerClasses) clone();
- c.inner_classes = new InnerClass[number_of_classes];
- for (int i = 0; i < number_of_classes; i++) {
- c.inner_classes[i] = inner_classes[i].copy();
- }
- c.constant_pool = _constant_pool;
- return c;
- }
-}
diff --git a/src/org/apache/bcel/classfile/JavaClass.java b/src/org/apache/bcel/classfile/JavaClass.java
deleted file mode 100644
index faf2a08..0000000
--- a/src/org/apache/bcel/classfile/JavaClass.java
+++ /dev/null
@@ -1,881 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.generic.Type;
-import org.apache.bcel.util.BCELComparator;
-import org.apache.bcel.util.ClassQueue;
-import org.apache.bcel.util.SyntheticRepository;
-
-/**
- * Represents a Java class, i.e., the data structures, constant pool, fields,
- * methods and commands contained in a Java .class file. See JVM specification for details. The
- * intent of this class is to represent a parsed or otherwise existing class
- * file. Those interested in programatically generating classes should see the
- * ClassGen class.
- *
- * @version $Id: JavaClass.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @see org.apache.bcel.generic.ClassGen
- * @author M. Dahm
- */
-public class JavaClass extends AccessFlags implements Cloneable, Node,
- Comparable
- *
- *
- * This operation inflates the original byte array by roughly 40-50%
- *
- *
- * @param bytes
- * the byte array to convert
- * @param compress
- * use gzip to minimize string
- */
- public static String encode(byte[] bytes, boolean compress)
- throws IOException {
- if (compress) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream gos = new GZIPOutputStream(baos);
- gos.write(bytes, 0, bytes.length);
- gos.close();
- baos.close();
- bytes = baos.toByteArray();
- }
- CharArrayWriter caw = new CharArrayWriter();
- JavaWriter jw = new JavaWriter(caw);
- for (int i = 0; i < bytes.length; i++) {
- int in = bytes[i] & 0x000000ff; // Normalize to unsigned
- jw.write(in);
- }
- jw.close();
- return caw.toString();
- }
-
- /**
- * Decode a string back to a byte array.
- *
- * @param s
- * the string to convert
- * @param uncompress
- * use gzip to uncompress the stream of bytes
- */
- public static byte[] decode(String s, boolean uncompress)
- throws IOException {
- char[] chars = s.toCharArray();
- CharArrayReader car = new CharArrayReader(chars);
- JavaReader jr = new JavaReader(car);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- int ch;
- while ((ch = jr.read()) >= 0) {
- bos.write(ch);
- }
- bos.close();
- car.close();
- jr.close();
- byte[] bytes = bos.toByteArray();
- if (uncompress) {
- GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(
- bytes));
- byte[] tmp = new byte[bytes.length * 3]; // Rough estimate
- int count = 0;
- int b;
- while ((b = gis.read()) >= 0) {
- tmp[count++] = (byte) b;
- }
- bytes = new byte[count];
- System.arraycopy(tmp, 0, bytes, 0, count);
- }
- return bytes;
- }
-
- // A-Z, g-z, _, $
- private static final int FREE_CHARS = 48;
- static int[] CHAR_MAP = new int[FREE_CHARS];
- static int[] MAP_CHAR = new int[256]; // Reverse map
- private static final char ESCAPE_CHAR = '$';
- static {
- int j = 0;
- for (int i = 'A'; i <= 'Z'; i++) {
- CHAR_MAP[j] = i;
- MAP_CHAR[i] = j;
- j++;
- }
- for (int i = 'g'; i <= 'z'; i++) {
- CHAR_MAP[j] = i;
- MAP_CHAR[i] = j;
- j++;
- }
- CHAR_MAP[j] = '$';
- MAP_CHAR['$'] = j;
- j++;
- CHAR_MAP[j] = '_';
- MAP_CHAR['_'] = j;
- }
-
- /**
- * Decode characters into bytes. Used by decode()
- */
- private static class JavaReader extends FilterReader {
-
- public JavaReader(Reader in) {
- super(in);
- }
-
- @Override
- public int read() throws IOException {
- int b = in.read();
- if (b != ESCAPE_CHAR) {
- return b;
- }
- int i = in.read();
- if (i < 0) {
- return -1;
- }
- if (((i >= '0') && (i <= '9')) || ((i >= 'a') && (i <= 'f'))) { // Normal
- // escape
- int j = in.read();
- if (j < 0) {
- return -1;
- }
- char[] tmp = { (char) i, (char) j };
- int s = Integer.parseInt(new String(tmp), 16);
- return s;
- }
- return MAP_CHAR[i];
- }
-
- @Override
- public int read(char[] cbuf, int off, int len) throws IOException {
- for (int i = 0; i < len; i++) {
- cbuf[off + i] = (char) read();
- }
- return len;
- }
- }
-
- /**
- * Encode bytes into valid java identifier characters. Used by encode()
- */
- private static class JavaWriter extends FilterWriter {
-
- public JavaWriter(Writer out) {
- super(out);
- }
-
- @Override
- public void write(int b) throws IOException {
- if (isJavaIdentifierPart((char) b) && (b != ESCAPE_CHAR)) {
- out.write(b);
- } else {
- out.write(ESCAPE_CHAR); // Escape character
- // Special escape
- if (b >= 0 && b < FREE_CHARS) {
- out.write(CHAR_MAP[b]);
- } else { // Normal escape
- char[] tmp = Integer.toHexString(b).toCharArray();
- if (tmp.length == 1) {
- out.write('0');
- out.write(tmp[0]);
- } else {
- out.write(tmp[0]);
- out.write(tmp[1]);
- }
- }
- }
- }
-
- @Override
- public void write(char[] cbuf, int off, int len) throws IOException {
- for (int i = 0; i < len; i++) {
- write(cbuf[off + i]);
- }
- }
-
- @Override
- public void write(String str, int off, int len) throws IOException {
- write(str.toCharArray(), off, len);
- }
- }
-
- /**
- * Escape all occurences of newline chars '\n', quotes \", etc.
- */
- public static final String convertString(String label) {
- char[] ch = label.toCharArray();
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < ch.length; i++) {
- switch (ch[i]) {
- case '\n':
- buf.append("\\n");
- break;
- case '\r':
- buf.append("\\r");
- break;
- case '\"':
- buf.append("\\\"");
- break;
- case '\'':
- buf.append("\\'");
- break;
- case '\\':
- buf.append("\\\\");
- break;
- default:
- buf.append(ch[i]);
- break;
- }
- }
- return buf.toString();
- }
-}
diff --git a/src/org/apache/bcel/classfile/Visitor.java b/src/org/apache/bcel/classfile/Visitor.java
deleted file mode 100644
index cdf0e74..0000000
--- a/src/org/apache/bcel/classfile/Visitor.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.classfile;
-
-/**
- * Interface to make use of the Visitor pattern programming style. I.e. a class
- * that implements this interface can traverse the contents of a Java class just
- * by calling the `accept' method which all classes have.
- *
- * @version $Id: Visitor.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface Visitor {
-
- // public void visitAnnotation(Annotations obj);
- // public void visitParameterAnnotation(ParameterAnnotations obj);
- // public void visitAnnotationEntry(AnnotationEntry obj);
- // public void visitAnnotationDefault(AnnotationDefault obj);
- public void visitCode(Code obj);
-
- public void visitCodeException(CodeException obj);
-
- public void visitConstantClass(ConstantClass obj);
-
- public void visitConstantDouble(ConstantDouble obj);
-
- public void visitConstantFieldref(ConstantFieldref obj);
-
- public void visitConstantFloat(ConstantFloat obj);
-
- public void visitConstantInteger(ConstantInteger obj);
-
- public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj);
-
- public void visitConstantLong(ConstantLong obj);
-
- public void visitConstantMethodref(ConstantMethodref obj);
-
- public void visitConstantNameAndType(ConstantNameAndType obj);
-
- public void visitConstantPool(ConstantPool obj);
-
- public void visitConstantString(ConstantString obj);
-
- public void visitConstantUtf8(ConstantUtf8 obj);
-
- public void visitConstantValue(ConstantValue obj);
-
- public void visitDeprecated(Deprecated obj);
-
- public void visitExceptionTable(ExceptionTable obj);
-
- public void visitField(Field obj);
-
- public void visitInnerClass(InnerClass obj);
-
- public void visitInnerClasses(InnerClasses obj);
-
- public void visitJavaClass(JavaClass obj);
-
- public void visitLineNumber(LineNumber obj);
-
- public void visitLineNumberTable(LineNumberTable obj);
-
- public void visitLocalVariable(LocalVariable obj);
-
- public void visitLocalVariableTable(LocalVariableTable obj);
-
- public void visitMethod(Method obj);
-
- public void visitSignature(Signature obj);
-
- public void visitSourceFile(SourceFile obj);
-
- public void visitSynthetic(Synthetic obj);
-
- public void visitUnknown(Unknown obj);
-
- public void visitStackMap(StackMap obj);
-
- public void visitStackMapEntry(StackMapEntry obj);
-}
diff --git a/src/org/apache/bcel/classfile/package.html b/src/org/apache/bcel/classfile/package.html
deleted file mode 100644
index 472c399..0000000
--- a/src/org/apache/bcel/classfile/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-This package contains the classes that describe the structure of a
-Java class file and a class file parser.
-
-
-
diff --git a/src/org/apache/bcel/generic/AALOAD.java b/src/org/apache/bcel/generic/AALOAD.java
deleted file mode 100644
index b8ecd6c..0000000
--- a/src/org/apache/bcel/generic/AALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * AALOAD - Load reference from array
- *
- *
- * Stack: ..., arrayref, index -> value
- *
- *
- * @version $Id: AALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class AALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load reference from array
- */
- public AALOAD() {
- super(org.apache.bcel.Constants.AALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitAALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/AASTORE.java b/src/org/apache/bcel/generic/AASTORE.java
deleted file mode 100644
index 8bc1792..0000000
--- a/src/org/apache/bcel/generic/AASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * AASTORE - Store into reference array
- *
- *
- * Stack: ..., arrayref, index, value -> ...
- *
- *
- * @version $Id: AASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class AASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store into reference array
- */
- public AASTORE() {
- super(org.apache.bcel.Constants.AASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitAASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ACONST_NULL.java b/src/org/apache/bcel/generic/ACONST_NULL.java
deleted file mode 100644
index d996cf0..0000000
--- a/src/org/apache/bcel/generic/ACONST_NULL.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ACONST_NULL - Push null reference
- *
- *
- * Stack: ... -> ..., null
- *
- *
- * @version $Id: ACONST_NULL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ACONST_NULL extends Instruction implements PushInstruction,
- TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Push null reference
- */
- public ACONST_NULL() {
- super(org.apache.bcel.Constants.ACONST_NULL, (short) 1);
- }
-
- /**
- * @return Type.NULL
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.NULL;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitPushInstruction(this);
- v.visitTypedInstruction(this);
- v.visitACONST_NULL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ALOAD.java b/src/org/apache/bcel/generic/ALOAD.java
deleted file mode 100644
index 7abea0e..0000000
--- a/src/org/apache/bcel/generic/ALOAD.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ALOAD - Load reference from local variable
- *
- *
- * Stack: ... -> ..., objectref
- *
- *
- * @version $Id: ALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ALOAD extends LoadInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ALOAD() {
- super(org.apache.bcel.Constants.ALOAD,
- org.apache.bcel.Constants.ALOAD_0);
- }
-
- /**
- * Load reference from local variable
- *
- * @param n
- * index of local variable
- */
- public ALOAD(int n) {
- super(org.apache.bcel.Constants.ALOAD,
- org.apache.bcel.Constants.ALOAD_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ANEWARRAY.java b/src/org/apache/bcel/generic/ANEWARRAY.java
deleted file mode 100644
index f7e4953..0000000
--- a/src/org/apache/bcel/generic/ANEWARRAY.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * ANEWARRAY - Create new array of references
- *
- *
- * Stack: ..., count -> ..., arrayref
- *
- *
- * @version $Id: ANEWARRAY.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ANEWARRAY extends CPInstruction implements LoadClass,
- AllocationInstruction, ExceptionThrower, StackConsumer, StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ANEWARRAY() {
- }
-
- public ANEWARRAY(int index) {
- super(org.apache.bcel.Constants.ANEWARRAY, index);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
- System.arraycopy(
- ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0, cs,
- 0,
- ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] = ExceptionConstants.NEGATIVE_ARRAY_SIZE_EXCEPTION;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitLoadClass(this);
- v.visitAllocationInstruction(this);
- v.visitExceptionThrower(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitCPInstruction(this);
- v.visitANEWARRAY(this);
- }
-
- @Override
- public ObjectType getLoadClassType(ConstantPoolGen cpg) {
- Type t = getType(cpg);
- if (t instanceof ArrayType) {
- t = ((ArrayType) t).getBasicType();
- }
- return (t instanceof ObjectType) ? (ObjectType) t : null;
- }
-}
diff --git a/src/org/apache/bcel/generic/ARETURN.java b/src/org/apache/bcel/generic/ARETURN.java
deleted file mode 100644
index dc47ddc..0000000
--- a/src/org/apache/bcel/generic/ARETURN.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ARETURN - Return reference from method
- *
- *
- * Stack: ..., objectref -> <empty>
- *
- *
- * @version $Id: ARETURN.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ARETURN extends ReturnInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Return reference from method
- */
- public ARETURN() {
- super(org.apache.bcel.Constants.ARETURN);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitReturnInstruction(this);
- v.visitARETURN(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ARRAYLENGTH.java b/src/org/apache/bcel/generic/ARRAYLENGTH.java
deleted file mode 100644
index 819f252..0000000
--- a/src/org/apache/bcel/generic/ARRAYLENGTH.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ARRAYLENGTH - Get length of array
- *
- *
- * Stack: ..., arrayref -> ..., length
- *
- *
- * @version $Id: ARRAYLENGTH.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ARRAYLENGTH extends Instruction implements ExceptionThrower,
- StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Get length of array
- */
- public ARRAYLENGTH() {
- super(org.apache.bcel.Constants.ARRAYLENGTH, (short) 1);
- }
-
- /**
- * @return exceptions this instruction may cause
- */
- @Override
- public Class>[] getExceptions() {
- return new Class[] { org.apache.bcel.ExceptionConstants.NULL_POINTER_EXCEPTION };
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitStackProducer(this);
- v.visitARRAYLENGTH(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ASTORE.java b/src/org/apache/bcel/generic/ASTORE.java
deleted file mode 100644
index 47e8f1a..0000000
--- a/src/org/apache/bcel/generic/ASTORE.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ASTORE - Store reference into local variable
- *
- *
- * Stack ..., objectref -> ...
- *
- *
- * @version $Id: ASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ASTORE extends StoreInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ASTORE() {
- super(org.apache.bcel.Constants.ASTORE,
- org.apache.bcel.Constants.ASTORE_0);
- }
-
- /**
- * Store reference into local variable
- *
- * @param n
- * index of local variable
- */
- public ASTORE(int n) {
- super(org.apache.bcel.Constants.ASTORE,
- org.apache.bcel.Constants.ASTORE_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ATHROW.java b/src/org/apache/bcel/generic/ATHROW.java
deleted file mode 100644
index b5563b3..0000000
--- a/src/org/apache/bcel/generic/ATHROW.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ATHROW - Throw exception
- *
- *
- * Stack: ..., objectref -> objectref
- *
- *
- * @version $Id: ATHROW.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ATHROW extends Instruction implements UnconditionalBranch,
- ExceptionThrower {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Throw exception
- */
- public ATHROW() {
- super(org.apache.bcel.Constants.ATHROW, (short) 1);
- }
-
- /**
- * @return exceptions this instruction may cause
- */
- @Override
- public Class>[] getExceptions() {
- return new Class[] { org.apache.bcel.ExceptionConstants.THROWABLE };
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitUnconditionalBranch(this);
- v.visitExceptionThrower(this);
- v.visitATHROW(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/AllocationInstruction.java b/src/org/apache/bcel/generic/AllocationInstruction.java
deleted file mode 100644
index a30ab52..0000000
--- a/src/org/apache/bcel/generic/AllocationInstruction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Denote family of instructions that allocates space in the heap.
- *
- * @version $Id: AllocationInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface AllocationInstruction {
-}
diff --git a/src/org/apache/bcel/generic/ArithmeticInstruction.java b/src/org/apache/bcel/generic/ArithmeticInstruction.java
deleted file mode 100644
index f60c295..0000000
--- a/src/org/apache/bcel/generic/ArithmeticInstruction.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * Super class for the family of arithmetic instructions.
- *
- * @version $Id: ArithmeticInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class ArithmeticInstruction extends Instruction implements
- TypedInstruction, StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ArithmeticInstruction() {
- }
-
- /**
- * @param opcode
- * of instruction
- */
- protected ArithmeticInstruction(short opcode) {
- super(opcode, (short) 1);
- }
-
- /**
- * @return type associated with the instruction
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- switch (opcode) {
- case Constants.DADD:
- case Constants.DDIV:
- case Constants.DMUL:
- case Constants.DNEG:
- case Constants.DREM:
- case Constants.DSUB:
- return Type.DOUBLE;
- case Constants.FADD:
- case Constants.FDIV:
- case Constants.FMUL:
- case Constants.FNEG:
- case Constants.FREM:
- case Constants.FSUB:
- return Type.FLOAT;
- case Constants.IADD:
- case Constants.IAND:
- case Constants.IDIV:
- case Constants.IMUL:
- case Constants.INEG:
- case Constants.IOR:
- case Constants.IREM:
- case Constants.ISHL:
- case Constants.ISHR:
- case Constants.ISUB:
- case Constants.IUSHR:
- case Constants.IXOR:
- return Type.INT;
- case Constants.LADD:
- case Constants.LAND:
- case Constants.LDIV:
- case Constants.LMUL:
- case Constants.LNEG:
- case Constants.LOR:
- case Constants.LREM:
- case Constants.LSHL:
- case Constants.LSHR:
- case Constants.LSUB:
- case Constants.LUSHR:
- case Constants.LXOR:
- return Type.LONG;
- default: // Never reached
- throw new ClassGenException("Unknown type " + opcode);
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/ArrayInstruction.java b/src/org/apache/bcel/generic/ArrayInstruction.java
deleted file mode 100644
index 883c7aa..0000000
--- a/src/org/apache/bcel/generic/ArrayInstruction.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Super class for instructions dealing with array access such as IALOAD.
- *
- * @version $Id: ArrayInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class ArrayInstruction extends Instruction implements
- ExceptionThrower, TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ArrayInstruction() {
- }
-
- /**
- * @param opcode
- * of instruction
- */
- protected ArrayInstruction(short opcode) {
- super(opcode, (short) 1);
- }
-
- @Override
- public Class>[] getExceptions() {
- return org.apache.bcel.ExceptionConstants.EXCS_ARRAY_EXCEPTION;
- }
-
- /**
- * @return type associated with the instruction
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- switch (opcode) {
- case org.apache.bcel.Constants.IALOAD:
- case org.apache.bcel.Constants.IASTORE:
- return Type.INT;
- case org.apache.bcel.Constants.CALOAD:
- case org.apache.bcel.Constants.CASTORE:
- return Type.CHAR;
- case org.apache.bcel.Constants.BALOAD:
- case org.apache.bcel.Constants.BASTORE:
- return Type.BYTE;
- case org.apache.bcel.Constants.SALOAD:
- case org.apache.bcel.Constants.SASTORE:
- return Type.SHORT;
- case org.apache.bcel.Constants.LALOAD:
- case org.apache.bcel.Constants.LASTORE:
- return Type.LONG;
- case org.apache.bcel.Constants.DALOAD:
- case org.apache.bcel.Constants.DASTORE:
- return Type.DOUBLE;
- case org.apache.bcel.Constants.FALOAD:
- case org.apache.bcel.Constants.FASTORE:
- return Type.FLOAT;
- case org.apache.bcel.Constants.AALOAD:
- case org.apache.bcel.Constants.AASTORE:
- return Type.OBJECT;
- default:
- throw new ClassGenException("Oops: unknown case in switch" + opcode);
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/ArrayType.java b/src/org/apache/bcel/generic/ArrayType.java
deleted file mode 100644
index fda1bc0..0000000
--- a/src/org/apache/bcel/generic/ArrayType.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * Denotes array type, such as int[][]
- *
- * @version $Id: ArrayType.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class ArrayType extends ReferenceType {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int dimensions;
- private Type basic_type;
-
- /**
- * Convenience constructor for array type, e.g. int[]
- *
- * @param type
- * array type, e.g. T_INT
- */
- public ArrayType(byte type, int dimensions) {
- this(BasicType.getType(type), dimensions);
- }
-
- /**
- * Convenience constructor for reference array type, e.g. Object[]
- *
- * @param class_name
- * complete name of class (java.lang.String, e.g.)
- */
- public ArrayType(String class_name, int dimensions) {
- this(new ObjectType(class_name), dimensions);
- }
-
- /**
- * Constructor for array of given type
- *
- * @param type
- * type of array (may be an array itself)
- */
- public ArrayType(Type type, int dimensions) {
- super(Constants.T_ARRAY, "");
- if ((dimensions < 1) || (dimensions > Constants.MAX_BYTE)) {
- throw new ClassGenException("Invalid number of dimensions: "
- + dimensions);
- }
- switch (type.getType()) {
- case Constants.T_ARRAY:
- ArrayType array = (ArrayType) type;
- this.dimensions = dimensions + array.dimensions;
- basic_type = array.basic_type;
- break;
- case Constants.T_VOID:
- throw new ClassGenException("Invalid type: void[]");
- default: // Basic type or reference
- this.dimensions = dimensions;
- basic_type = type;
- break;
- }
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < this.dimensions; i++) {
- buf.append('[');
- }
- buf.append(basic_type.getSignature());
- signature = buf.toString();
- }
-
- /**
- * @return basic type of array, i.e., for int[][][] the basic type is int
- */
- public Type getBasicType() {
- return basic_type;
- }
-
- /**
- * @return element type of array, i.e., for int[][][] the element type is
- * int[][]
- */
- public Type getElementType() {
- if (dimensions == 1) {
- return basic_type;
- }
- return new ArrayType(basic_type, dimensions - 1);
- }
-
- /**
- * @return number of dimensions of array
- */
- public int getDimensions() {
- return dimensions;
- }
-
- /**
- * @return a hash code value for the object.
- */
- @Override
- public int hashCode() {
- return basic_type.hashCode() ^ dimensions;
- }
-
- /**
- * @return true if both type objects refer to the same array type.
- */
- @Override
- public boolean equals(Object _type) {
- if (_type instanceof ArrayType) {
- ArrayType array = (ArrayType) _type;
- return (array.dimensions == dimensions)
- && array.basic_type.equals(basic_type);
- }
- return false;
- }
-}
diff --git a/src/org/apache/bcel/generic/BALOAD.java b/src/org/apache/bcel/generic/BALOAD.java
deleted file mode 100644
index 9f6d6fe..0000000
--- a/src/org/apache/bcel/generic/BALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * BALOAD - Load byte or boolean from array
- *
- *
- * Stack: ..., arrayref, index -> ..., value
- *
- *
- * @version $Id: BALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class BALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load byte or boolean from array
- */
- public BALOAD() {
- super(org.apache.bcel.Constants.BALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitBALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/BASTORE.java b/src/org/apache/bcel/generic/BASTORE.java
deleted file mode 100644
index cb0aefc..0000000
--- a/src/org/apache/bcel/generic/BASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * BASTORE - Store into byte or boolean array
- *
- *
- * Stack: ..., arrayref, index, value -> ...
- *
- *
- * @version $Id: BASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class BASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store byte or boolean into array
- */
- public BASTORE() {
- super(org.apache.bcel.Constants.BASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitBASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/BIPUSH.java b/src/org/apache/bcel/generic/BIPUSH.java
deleted file mode 100644
index b1412e9..0000000
--- a/src/org/apache/bcel/generic/BIPUSH.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * BIPUSH - Push byte on stack
- *
- *
- * Stack: ... -> ..., value
- *
- *
- * @version $Id: BIPUSH.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class BIPUSH extends Instruction implements ConstantPushInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private byte b;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- BIPUSH() {
- }
-
- /**
- * Push byte on stack
- */
- public BIPUSH(byte b) {
- super(org.apache.bcel.Constants.BIPUSH, (short) 2);
- this.b = b;
- }
-
- /**
- * Dump instruction as byte code to stream out.
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- super.dump(out);
- out.writeByte(b);
- }
-
- /**
- * @return mnemonic for instruction
- */
- @Override
- public String toString(boolean verbose) {
- return super.toString(verbose) + " " + b;
- }
-
- /**
- * Read needed data (e.g. index) from file.
- */
- @Override
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- length = 2;
- b = bytes.readByte();
- }
-
- @Override
- public Number getValue() {
- return new Integer(b);
- }
-
- /**
- * @return Type.BYTE
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.BYTE;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitPushInstruction(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitConstantPushInstruction(this);
- v.visitBIPUSH(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/BREAKPOINT.java b/src/org/apache/bcel/generic/BREAKPOINT.java
deleted file mode 100644
index 74e7308..0000000
--- a/src/org/apache/bcel/generic/BREAKPOINT.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * BREAKPOINT, JVM dependent, ignored by default
- *
- * @version $Id: BREAKPOINT.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class BREAKPOINT extends Instruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public BREAKPOINT() {
- super(org.apache.bcel.Constants.BREAKPOINT, (short) 1);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitBREAKPOINT(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/BasicType.java b/src/org/apache/bcel/generic/BasicType.java
deleted file mode 100644
index 715039d..0000000
--- a/src/org/apache/bcel/generic/BasicType.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * Denotes basic type such as int.
- *
- * @version $Id: BasicType.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class BasicType extends Type {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Constructor for basic types such as int, long, `void'
- *
- * @param type
- * one of T_INT, T_BOOLEAN, ..., T_VOID
- * @see org.apache.bcel.Constants
- */
- BasicType(byte type) {
- super(type, Constants.SHORT_TYPE_NAMES[type]);
- if ((type < Constants.T_BOOLEAN) || (type > Constants.T_VOID)) {
- throw new ClassGenException("Invalid type: " + type);
- }
- }
-
- public static final BasicType getType(byte type) {
- switch (type) {
- case Constants.T_VOID:
- return VOID;
- case Constants.T_BOOLEAN:
- return BOOLEAN;
- case Constants.T_BYTE:
- return BYTE;
- case Constants.T_SHORT:
- return SHORT;
- case Constants.T_CHAR:
- return CHAR;
- case Constants.T_INT:
- return INT;
- case Constants.T_LONG:
- return LONG;
- case Constants.T_DOUBLE:
- return DOUBLE;
- case Constants.T_FLOAT:
- return FLOAT;
- default:
- throw new ClassGenException("Invalid type: " + type);
- }
- }
-
- /**
- * @return a hash code value for the object.
- */
- @Override
- public int hashCode() {
- return type;
- }
-
- /**
- * @return true if both type objects refer to the same type
- */
- @Override
- public boolean equals(Object _type) {
- return (_type instanceof BasicType) ? ((BasicType) _type).type == this.type
- : false;
- }
-}
diff --git a/src/org/apache/bcel/generic/BranchHandle.java b/src/org/apache/bcel/generic/BranchHandle.java
deleted file mode 100644
index bb946d6..0000000
--- a/src/org/apache/bcel/generic/BranchHandle.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * BranchHandle is returned by specialized InstructionList.append() whenever a
- * BranchInstruction is appended. This is useful when the target of this
- * instruction is not known at time of creation and must be set later via
- * setTarget().
- *
- * @see InstructionHandle
- * @see Instruction
- * @see InstructionList
- * @version $Id: BranchHandle.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public final class BranchHandle extends InstructionHandle {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private BranchInstruction bi; // An alias in fact, but saves lots of casts
-
- private BranchHandle(BranchInstruction i) {
- super(i);
- bi = i;
- }
-
- /**
- * Factory methods.
- */
- private static BranchHandle bh_list = null; // List of reusable handles
-
- static final BranchHandle getBranchHandle(BranchInstruction i) {
- if (bh_list == null) {
- return new BranchHandle(i);
- }
- BranchHandle bh = bh_list;
- bh_list = (BranchHandle) bh.next;
- bh.setInstruction(i);
- return bh;
- }
-
- /**
- * Handle adds itself to the list of resuable handles.
- */
- @Override
- protected void addHandle() {
- next = bh_list;
- bh_list = this;
- }
-
- /*
- * Override InstructionHandle methods: delegate to branch instruction.
- * Through this overriding all access to the private i_position field should
- * be prevented.
- */
- @Override
- public int getPosition() {
- return bi.position;
- }
-
- @Override
- void setPosition(int pos) {
- i_position = bi.position = pos;
- }
-
- @Override
- protected int updatePosition(int offset, int max_offset) {
- int x = bi.updatePosition(offset, max_offset);
- i_position = bi.position;
- return x;
- }
-
- /**
- * Pass new target to instruction.
- */
- public void setTarget(InstructionHandle ih) {
- bi.setTarget(ih);
- }
-
- /**
- * Update target of instruction.
- */
- public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
- bi.updateTarget(old_ih, new_ih);
- }
-
- /**
- * @return target of instruction.
- */
- public InstructionHandle getTarget() {
- return bi.getTarget();
- }
-
- /**
- * Set new contents. Old instruction is disposed and may not be used
- * anymore.
- */
- @Override
- public void setInstruction(Instruction i) {
- super.setInstruction(i);
- if (!(i instanceof BranchInstruction)) {
- throw new ClassGenException("Assigning " + i
- + " to branch handle which is not a branch instruction");
- }
- bi = (BranchInstruction) i;
- }
-}
diff --git a/src/org/apache/bcel/generic/BranchInstruction.java b/src/org/apache/bcel/generic/BranchInstruction.java
deleted file mode 100644
index 2864a05..0000000
--- a/src/org/apache/bcel/generic/BranchInstruction.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * Abstract super class for branching instructions like GOTO, IFEQ, etc.. Branch
- * instructions may have a variable length, namely GOTO, JSR, LOOKUPSWITCH and
- * TABLESWITCH.
- *
- * @see InstructionList
- * @version $Id: BranchInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class BranchInstruction extends Instruction implements
- InstructionTargeter {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int index; // Branch target relative to this instruction
- protected InstructionHandle target; // Target object in instruction list
- protected int position; // Byte code offset
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- BranchInstruction() {
- }
-
- /**
- * Common super constructor
- *
- * @param opcode
- * Instruction opcode
- * @param target
- * instruction to branch to
- */
- protected BranchInstruction(short opcode, InstructionHandle target) {
- super(opcode, (short) 3);
- setTarget(target);
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- out.writeByte(opcode);
- index = getTargetOffset();
- if (Math.abs(index) >= 32767) {
- throw new ClassGenException(
- "Branch target offset too large for short");
- }
- out.writeShort(index); // May be negative, i.e., point backwards
- }
-
- /**
- * @param _target
- * branch target
- * @return the offset to `target' relative to this instruction
- */
- protected int getTargetOffset(InstructionHandle _target) {
- if (_target == null) {
- throw new ClassGenException("Target of " + super.toString(true)
- + " is invalid null handle");
- }
- int t = _target.getPosition();
- if (t < 0) {
- throw new ClassGenException(
- "Invalid branch target position offset for "
- + super.toString(true) + ":" + t + ":" + _target);
- }
- return t - position;
- }
-
- /**
- * @return the offset to this instruction's target
- */
- protected int getTargetOffset() {
- return getTargetOffset(target);
- }
-
- /**
- * Called by InstructionList.setPositions when setting the position for
- * every instruction. In the presence of variable length instructions
- * `setPositions' performs multiple passes over the instruction list to
- * calculate the correct (byte) positions and offsets by calling this
- * function.
- *
- * @param offset
- * additional offset caused by preceding (variable length)
- * instructions
- * @param max_offset
- * the maximum offset that may be caused by these instructions
- * @return additional offset caused by possible change of this instruction's
- * length
- */
- protected int updatePosition(int offset, int max_offset) {
- position += offset;
- return 0;
- }
-
- /**
- * Long output format:
- *
- * <position in byte code> <name of opcode> "["<opcode
- * number>"]" "("<length of instruction>")" "<"<target
- * instruction>">" "@"<branch target offset>
- *
- * @param verbose
- * long/short format switch
- * @return mnemonic for instruction
- */
- @Override
- public String toString(boolean verbose) {
- String s = super.toString(verbose);
- String t = "null";
- if (verbose) {
- if (target != null) {
- if (target.getInstruction() == this) {
- t = "";
- } else if (target.getInstruction() == null) {
- t = "";
- } else {
- t = target.getInstruction().toString(false); // Avoid
- // circles
- }
- }
- } else {
- if (target != null) {
- index = getTargetOffset();
- t = "" + (index + position);
- }
- }
- return s + " -> " + t;
- }
-
- /**
- * Read needed data (e.g. index) from file. Conversion to a
- * InstructionHandle is done in InstructionList(byte[]).
- *
- * @param bytes
- * input stream
- * @param wide
- * wide prefix?
- * @see InstructionList
- */
- @Override
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- length = 3;
- index = bytes.readShort();
- }
-
- /**
- * @return target offset in byte code
- */
- public final int getIndex() {
- return index;
- }
-
- /**
- * @return target of branch instruction
- */
- public InstructionHandle getTarget() {
- return target;
- }
-
- /**
- * Set branch target
- *
- * @param target
- * branch target
- */
- public void setTarget(InstructionHandle target) {
- notifyTarget(this.target, target, this);
- this.target = target;
- }
-
- /**
- * Used by BranchInstruction, LocalVariableGen, CodeExceptionGen
- */
- static final void notifyTarget(InstructionHandle old_ih,
- InstructionHandle new_ih, InstructionTargeter t) {
- if (old_ih != null) {
- old_ih.removeTargeter(t);
- }
- if (new_ih != null) {
- new_ih.addTargeter(t);
- }
- }
-
- /**
- * @param old_ih
- * old target
- * @param new_ih
- * new target
- */
- @Override
- public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
- if (target == old_ih) {
- setTarget(new_ih);
- } else {
- throw new ClassGenException("Not targeting " + old_ih + ", but "
- + target);
- }
- }
-
- /**
- * @return true, if ih is target of this instruction
- */
- @Override
- public boolean containsTarget(InstructionHandle ih) {
- return (target == ih);
- }
-
- /**
- * Inform target that it's not targeted anymore.
- */
- @Override
- void dispose() {
- setTarget(null);
- index = -1;
- position = -1;
- }
-}
diff --git a/src/org/apache/bcel/generic/CALOAD.java b/src/org/apache/bcel/generic/CALOAD.java
deleted file mode 100644
index 50839af..0000000
--- a/src/org/apache/bcel/generic/CALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * CALOAD - Load char from array
- *
- *
- * Stack: ..., arrayref, index -> ..., value
- *
- *
- * @version $Id: CALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class CALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load char from array
- */
- public CALOAD() {
- super(org.apache.bcel.Constants.CALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitCALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/CASTORE.java b/src/org/apache/bcel/generic/CASTORE.java
deleted file mode 100644
index 77d1c34..0000000
--- a/src/org/apache/bcel/generic/CASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * CASTORE - Store into char array
- *
- *
- * Stack: ..., arrayref, index, value -> ...
- *
- *
- * @version $Id: CASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class CASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store char into array
- */
- public CASTORE() {
- super(org.apache.bcel.Constants.CASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitCASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/CHECKCAST.java b/src/org/apache/bcel/generic/CHECKCAST.java
deleted file mode 100644
index 08882b1..0000000
--- a/src/org/apache/bcel/generic/CHECKCAST.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * CHECKCAST - Check whether object is of given type
- *
- *
- * Stack: ..., objectref -> ..., objectref
- *
- *
- * @version $Id: CHECKCAST.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class CHECKCAST extends CPInstruction implements LoadClass,
- ExceptionThrower, StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- CHECKCAST() {
- }
-
- /**
- * Check whether object is of given type
- *
- * @param index
- * index to class in constant pool
- */
- public CHECKCAST(int index) {
- super(org.apache.bcel.Constants.CHECKCAST, index);
- }
-
- /**
- * @return exceptions this instruction may cause
- */
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
- System.arraycopy(
- ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0, cs,
- 0,
- ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] = ExceptionConstants.CLASS_CAST_EXCEPTION;
- return cs;
- }
-
- @Override
- public ObjectType getLoadClassType(ConstantPoolGen cpg) {
- Type t = getType(cpg);
- if (t instanceof ArrayType) {
- t = ((ArrayType) t).getBasicType();
- }
- return (t instanceof ObjectType) ? (ObjectType) t : null;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitLoadClass(this);
- v.visitExceptionThrower(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitTypedInstruction(this);
- v.visitCPInstruction(this);
- v.visitCHECKCAST(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/CPInstruction.java b/src/org/apache/bcel/generic/CPInstruction.java
deleted file mode 100644
index 6efe659..0000000
--- a/src/org/apache/bcel/generic/CPInstruction.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.classfile.Constant;
-import org.apache.bcel.classfile.ConstantClass;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * Abstract super class for instructions that use an index into the constant
- * pool such as LDC, INVOKEVIRTUAL, etc.
- *
- * @see ConstantPoolGen
- * @see LDC
- * @see INVOKEVIRTUAL
- *
- * @version $Id: CPInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class CPInstruction extends Instruction implements
- TypedInstruction, IndexedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int index; // index to constant pool
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- CPInstruction() {
- }
-
- /**
- * @param index
- * to constant pool
- */
- protected CPInstruction(short opcode, int index) {
- super(opcode, (short) 3);
- setIndex(index);
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- out.writeByte(opcode);
- out.writeShort(index);
- }
-
- /**
- * Long output format:
- *
- * <name of opcode> "["<opcode number>"]" "("<length of
- * instruction>")" "<"< constant pool index>">"
- *
- * @param verbose
- * long/short format switch
- * @return mnemonic for instruction
- */
- @Override
- public String toString(boolean verbose) {
- return super.toString(verbose) + " " + index;
- }
-
- /**
- * @return mnemonic for instruction with symbolic references resolved
- */
- @Override
- public String toString(ConstantPool cp) {
- Constant c = cp.getConstant(index);
- String str = cp.constantToString(c);
- if (c instanceof ConstantClass) {
- str = str.replace('.', '/');
- }
- return org.apache.bcel.Constants.OPCODE_NAMES[opcode] + " " + str;
- }
-
- /**
- * Read needed data (i.e., index) from file.
- *
- * @param bytes
- * input stream
- * @param wide
- * wide prefix?
- */
- @Override
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- setIndex(bytes.readUnsignedShort());
- length = 3;
- }
-
- /**
- * @return index in constant pool referred by this instruction.
- */
- @Override
- public final int getIndex() {
- return index;
- }
-
- /**
- * Set the index to constant pool.
- *
- * @param index
- * in constant pool.
- */
- @Override
- public void setIndex(int index) {
- if (index < 0) {
- throw new ClassGenException("Negative index value: " + index);
- }
- this.index = index;
- }
-
- /**
- * @return type related with this instruction.
- */
- @Override
- public Type getType(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- String name = cp.getConstantString(index,
- org.apache.bcel.Constants.CONSTANT_Class);
- if (!name.startsWith("[")) {
- name = "L" + name + ";";
- }
- return Type.getType(name);
- }
-}
diff --git a/src/org/apache/bcel/generic/ClassGen.java b/src/org/apache/bcel/generic/ClassGen.java
deleted file mode 100644
index c9d3d14..0000000
--- a/src/org/apache/bcel/generic/ClassGen.java
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.classfile.AccessFlags;
-import org.apache.bcel.classfile.Attribute;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.classfile.Field;
-import org.apache.bcel.classfile.JavaClass;
-import org.apache.bcel.classfile.Method;
-import org.apache.bcel.classfile.SourceFile;
-import org.apache.bcel.util.BCELComparator;
-
-/**
- * Template class for building up a java class. May be initialized with an
- * existing java class (file).
- *
- * @see JavaClass
- * @version $Id: ClassGen.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ClassGen extends AccessFlags implements Cloneable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- /*
- * Corresponds to the fields found in a JavaClass object.
- */
- private String class_name, super_class_name, file_name;
- private int class_name_index = -1, superclass_name_index = -1;
- private int major = Constants.MAJOR_1_1, minor = Constants.MINOR_1_1;
- private ConstantPoolGen cp; // Template for building up constant pool
- // ArrayLists instead of arrays to gather fields, methods, etc.
- private List field_vec = new ArrayList();
- private List method_vec = new ArrayList();
- private List attribute_vec = new ArrayList();
- private List interface_vec = new ArrayList();
- private static BCELComparator _cmp = new BCELComparator() {
-
- @Override
- public boolean equals(Object o1, Object o2) {
- ClassGen THIS = (ClassGen) o1;
- ClassGen THAT = (ClassGen) o2;
- return THIS.getClassName().equals(THAT.getClassName());
- }
-
- @Override
- public int hashCode(Object o) {
- ClassGen THIS = (ClassGen) o;
- return THIS.getClassName().hashCode();
- }
- };
-
- /**
- * Convenience constructor to set up some important values initially.
- *
- * @param class_name
- * fully qualified class name
- * @param super_class_name
- * fully qualified superclass name
- * @param file_name
- * source file name
- * @param access_flags
- * access qualifiers
- * @param interfaces
- * implemented interfaces
- * @param cp
- * constant pool to use
- */
- public ClassGen(String class_name, String super_class_name,
- String file_name, int access_flags, String[] interfaces,
- ConstantPoolGen cp) {
- this.class_name = class_name;
- this.super_class_name = super_class_name;
- this.file_name = file_name;
- this.access_flags = access_flags;
- this.cp = cp;
- // Put everything needed by default into the constant pool and the
- // vectors
- if (file_name != null) {
- addAttribute(new SourceFile(cp.addUtf8("SourceFile"), 2,
- cp.addUtf8(file_name), cp.getConstantPool()));
- }
- class_name_index = cp.addClass(class_name);
- superclass_name_index = cp.addClass(super_class_name);
- if (interfaces != null) {
- for (int i = 0; i < interfaces.length; i++) {
- addInterface(interfaces[i]);
- }
- }
- }
-
- /**
- * Convenience constructor to set up some important values initially.
- *
- * @param class_name
- * fully qualified class name
- * @param super_class_name
- * fully qualified superclass name
- * @param file_name
- * source file name
- * @param access_flags
- * access qualifiers
- * @param interfaces
- * implemented interfaces
- */
- public ClassGen(String class_name, String super_class_name,
- String file_name, int access_flags, String[] interfaces) {
- this(class_name, super_class_name, file_name, access_flags, interfaces,
- new ConstantPoolGen());
- }
-
- /**
- * Initialize with existing class.
- *
- * @param clazz
- * JavaClass object (e.g. read from file)
- */
- public ClassGen(JavaClass clazz) {
- class_name_index = clazz.getClassNameIndex();
- superclass_name_index = clazz.getSuperclassNameIndex();
- class_name = clazz.getClassName();
- super_class_name = clazz.getSuperclassName();
- file_name = clazz.getSourceFileName();
- access_flags = clazz.getAccessFlags();
- cp = new ConstantPoolGen(clazz.getConstantPool());
- major = clazz.getMajor();
- minor = clazz.getMinor();
- Attribute[] attributes = clazz.getAttributes();
- Method[] methods = clazz.getMethods();
- Field[] fields = clazz.getFields();
- String[] interfaces = clazz.getInterfaceNames();
- for (int i = 0; i < interfaces.length; i++) {
- addInterface(interfaces[i]);
- }
- for (int i = 0; i < attributes.length; i++) {
- addAttribute(attributes[i]);
- }
- for (int i = 0; i < methods.length; i++) {
- addMethod(methods[i]);
- }
- for (int i = 0; i < fields.length; i++) {
- addField(fields[i]);
- }
- }
-
- /**
- * @return the (finally) built up Java class object.
- */
- public JavaClass getJavaClass() {
- int[] interfaces = getInterfaces();
- Field[] fields = getFields();
- Method[] methods = getMethods();
- Attribute[] attributes = getAttributes();
- // Must be last since the above calls may still add something to it
- ConstantPool _cp = this.cp.getFinalConstantPool();
- return new JavaClass(class_name_index, superclass_name_index,
- file_name, major, minor, access_flags, _cp, interfaces, fields,
- methods, attributes);
- }
-
- /**
- * Add an interface to this class, i.e., this class has to implement it.
- *
- * @param name
- * interface to implement (fully qualified class name)
- */
- public void addInterface(String name) {
- interface_vec.add(name);
- }
-
- /**
- * Remove an interface from this class.
- *
- * @param name
- * interface to remove (fully qualified name)
- */
- public void removeInterface(String name) {
- interface_vec.remove(name);
- }
-
- /**
- * @return major version number of class file
- */
- public int getMajor() {
- return major;
- }
-
- /**
- * Set major version number of class file, default value is 45 (JDK 1.1)
- *
- * @param major
- * major version number
- */
- public void setMajor(int major) {
- this.major = major;
- }
-
- /**
- * Set minor version number of class file, default value is 3 (JDK 1.1)
- *
- * @param minor
- * minor version number
- */
- public void setMinor(int minor) {
- this.minor = minor;
- }
-
- /**
- * @return minor version number of class file
- */
- public int getMinor() {
- return minor;
- }
-
- /**
- * Add an attribute to this class.
- *
- * @param a
- * attribute to add
- */
- public void addAttribute(Attribute a) {
- attribute_vec.add(a);
- }
-
- /**
- * Add a method to this class.
- *
- * @param m
- * method to add
- */
- public void addMethod(Method m) {
- method_vec.add(m);
- }
-
- /**
- * Convenience method.
- *
- * Add an empty constructor to this class that does nothing but calling
- * super().
- *
- * @param access_flags
- * rights for constructor
- */
- public void addEmptyConstructor(int access_flags) {
- InstructionList il = new InstructionList();
- il.append(InstructionConstants.THIS); // Push `this'
- il.append(new INVOKESPECIAL(cp.addMethodref(super_class_name, "",
- "()V")));
- il.append(InstructionConstants.RETURN);
- MethodGen mg = new MethodGen(access_flags, Type.VOID, Type.NO_ARGS,
- null, "", class_name, il, cp);
- mg.setMaxStack(1);
- addMethod(mg.getMethod());
- }
-
- /**
- * Add a field to this class.
- *
- * @param f
- * field to add
- */
- public void addField(Field f) {
- field_vec.add(f);
- }
-
- public boolean containsField(Field f) {
- return field_vec.contains(f);
- }
-
- /**
- * @return field object with given name, or null
- */
- public Field containsField(String name) {
- for (Iterator e = field_vec.iterator(); e.hasNext();) {
- Field f = e.next();
- if (f.getName().equals(name)) {
- return f;
- }
- }
- return null;
- }
-
- /**
- * @return method object with given name and signature, or null
- */
- public Method containsMethod(String name, String signature) {
- for (Iterator e = method_vec.iterator(); e.hasNext();) {
- Method m = e.next();
- if (m.getName().equals(name) && m.getSignature().equals(signature)) {
- return m;
- }
- }
- return null;
- }
-
- /**
- * Remove an attribute from this class.
- *
- * @param a
- * attribute to remove
- */
- public void removeAttribute(Attribute a) {
- attribute_vec.remove(a);
- }
-
- /**
- * Remove a method from this class.
- *
- * @param m
- * method to remove
- */
- public void removeMethod(Method m) {
- method_vec.remove(m);
- }
-
- /**
- * Replace given method with new one. If the old one does not exist add the
- * new_ method to the class anyway.
- */
- public void replaceMethod(Method old, Method new_) {
- if (new_ == null) {
- throw new ClassGenException("Replacement method must not be null");
- }
- int i = method_vec.indexOf(old);
- if (i < 0) {
- method_vec.add(new_);
- } else {
- method_vec.set(i, new_);
- }
- }
-
- /**
- * Replace given field with new one. If the old one does not exist add the
- * new_ field to the class anyway.
- */
- public void replaceField(Field old, Field new_) {
- if (new_ == null) {
- throw new ClassGenException("Replacement method must not be null");
- }
- int i = field_vec.indexOf(old);
- if (i < 0) {
- field_vec.add(new_);
- } else {
- field_vec.set(i, new_);
- }
- }
-
- /**
- * Remove a field to this class.
- *
- * @param f
- * field to remove
- */
- public void removeField(Field f) {
- field_vec.remove(f);
- }
-
- public String getClassName() {
- return class_name;
- }
-
- public String getSuperclassName() {
- return super_class_name;
- }
-
- public String getFileName() {
- return file_name;
- }
-
- public void setClassName(String name) {
- class_name = name.replace('/', '.');
- class_name_index = cp.addClass(name);
- }
-
- public void setSuperclassName(String name) {
- super_class_name = name.replace('/', '.');
- superclass_name_index = cp.addClass(name);
- }
-
- public Method[] getMethods() {
- return method_vec.toArray(new Method[method_vec.size()]);
- }
-
- public void setMethods(Method[] methods) {
- method_vec.clear();
- for (int m = 0; m < methods.length; m++) {
- addMethod(methods[m]);
- }
- }
-
- public void setMethodAt(Method method, int pos) {
- method_vec.set(pos, method);
- }
-
- public Method getMethodAt(int pos) {
- return method_vec.get(pos);
- }
-
- public String[] getInterfaceNames() {
- int size = interface_vec.size();
- String[] interfaces = new String[size];
- interface_vec.toArray(interfaces);
- return interfaces;
- }
-
- public int[] getInterfaces() {
- int size = interface_vec.size();
- int[] interfaces = new int[size];
- for (int i = 0; i < size; i++) {
- interfaces[i] = cp.addClass(interface_vec.get(i));
- }
- return interfaces;
- }
-
- public Field[] getFields() {
- return field_vec.toArray(new Field[field_vec.size()]);
- }
-
- public Attribute[] getAttributes() {
- return attribute_vec.toArray(new Attribute[attribute_vec.size()]);
- }
-
- public ConstantPoolGen getConstantPool() {
- return cp;
- }
-
- public void setConstantPool(ConstantPoolGen constant_pool) {
- cp = constant_pool;
- }
-
- public void setClassNameIndex(int class_name_index) {
- this.class_name_index = class_name_index;
- class_name = cp.getConstantPool()
- .getConstantString(class_name_index, Constants.CONSTANT_Class)
- .replace('/', '.');
- }
-
- public void setSuperclassNameIndex(int superclass_name_index) {
- this.superclass_name_index = superclass_name_index;
- super_class_name = cp
- .getConstantPool()
- .getConstantString(superclass_name_index,
- Constants.CONSTANT_Class).replace('/', '.');
- }
-
- public int getSuperclassNameIndex() {
- return superclass_name_index;
- }
-
- public int getClassNameIndex() {
- return class_name_index;
- }
-
- private ArrayList observers;
-
- /**
- * Add observer for this object.
- */
- public void addObserver(ClassObserver o) {
- if (observers == null) {
- observers = new ArrayList();
- }
- observers.add(o);
- }
-
- /**
- * Remove observer for this object.
- */
- public void removeObserver(ClassObserver o) {
- if (observers != null) {
- observers.remove(o);
- }
- }
-
- /**
- * Call notify() method on all observers. This method is not called
- * automatically whenever the state has changed, but has to be called by the
- * user after he has finished editing the object.
- */
- public void update() {
- if (observers != null) {
- for (Iterator e = observers.iterator(); e.hasNext();) {
- e.next().notify(this);
- }
- }
- }
-
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- System.err.println(e);
- return null;
- }
- }
-
- /**
- * @return Comparison strategy object
- */
- public static BCELComparator getComparator() {
- return _cmp;
- }
-
- /**
- * @param comparator
- * Comparison strategy object
- */
- public static void setComparator(BCELComparator comparator) {
- _cmp = comparator;
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default two
- * ClassGen objects are said to be equal when their class names are equal.
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- return _cmp.equals(this, obj);
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default
- * return the hashcode of the class name.
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return _cmp.hashCode(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ClassGenException.java b/src/org/apache/bcel/generic/ClassGenException.java
deleted file mode 100644
index 8848b1b..0000000
--- a/src/org/apache/bcel/generic/ClassGenException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Thrown on internal errors. Extends RuntimeException so it hasn't to be
- * declared in the throws clause every time.
- *
- * @version $Id: ClassGenException.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ClassGenException extends RuntimeException {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public ClassGenException() {
- super();
- }
-
- public ClassGenException(String s) {
- super(s);
- }
-}
diff --git a/src/org/apache/bcel/generic/ClassObserver.java b/src/org/apache/bcel/generic/ClassObserver.java
deleted file mode 100644
index ce63df1..0000000
--- a/src/org/apache/bcel/generic/ClassObserver.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Implement this interface if you're interested in changes to a ClassGen object
- * and register yourself with addObserver().
- *
- * @version $Id: ClassObserver.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface ClassObserver {
-
- public void notify(ClassGen clazz);
-}
diff --git a/src/org/apache/bcel/generic/CodeExceptionGen.java b/src/org/apache/bcel/generic/CodeExceptionGen.java
deleted file mode 100644
index 5ccfba0..0000000
--- a/src/org/apache/bcel/generic/CodeExceptionGen.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.classfile.CodeException;
-
-/**
- * This class represents an exception handler, i.e., specifies the region where
- * a handler is active and an instruction where the actual handling is done.
- * pool as parameters. Opposed to the JVM specification the end of the handled
- * region is set to be inclusive, i.e. all instructions between start and end
- * are protected including the start and end instructions (handles) themselves.
- * The end of the region is automatically mapped to be exclusive when calling
- * getCodeException(), i.e., there is no difference semantically.
- *
- * @version $Id: CodeExceptionGen.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see MethodGen
- * @see CodeException
- * @see InstructionHandle
- */
-public final class CodeExceptionGen implements InstructionTargeter, Cloneable,
- java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private InstructionHandle start_pc;
- private InstructionHandle end_pc;
- private InstructionHandle handler_pc;
- private ObjectType catch_type;
-
- /**
- * Add an exception handler, i.e., specify region where a handler is active
- * and an instruction where the actual handling is done.
- *
- * @param start_pc
- * Start of handled region (inclusive)
- * @param end_pc
- * End of handled region (inclusive)
- * @param handler_pc
- * Where handling is done
- * @param catch_type
- * which exception is handled, null for ANY
- */
- public CodeExceptionGen(InstructionHandle start_pc,
- InstructionHandle end_pc, InstructionHandle handler_pc,
- ObjectType catch_type) {
- setStartPC(start_pc);
- setEndPC(end_pc);
- setHandlerPC(handler_pc);
- this.catch_type = catch_type;
- }
-
- /**
- * Get CodeException object.
- *
- * This relies on that the instruction list has already been dumped to byte
- * code or or that the `setPositions' methods has been called for the
- * instruction list.
- *
- * @param cp
- * constant pool
- */
- public CodeException getCodeException(ConstantPoolGen cp) {
- return new CodeException(start_pc.getPosition(), end_pc.getPosition()
- + end_pc.getInstruction().getLength(),
- handler_pc.getPosition(), (catch_type == null) ? 0
- : cp.addClass(catch_type));
- }
-
- /*
- * Set start of handler
- *
- * @param start_pc Start of handled region (inclusive)
- */
- public void setStartPC(InstructionHandle start_pc) {
- BranchInstruction.notifyTarget(this.start_pc, start_pc, this);
- this.start_pc = start_pc;
- }
-
- /*
- * Set end of handler
- *
- * @param end_pc End of handled region (inclusive)
- */
- public void setEndPC(InstructionHandle end_pc) {
- BranchInstruction.notifyTarget(this.end_pc, end_pc, this);
- this.end_pc = end_pc;
- }
-
- /*
- * Set handler code
- *
- * @param handler_pc Start of handler
- */
- public void setHandlerPC(InstructionHandle handler_pc) {
- BranchInstruction.notifyTarget(this.handler_pc, handler_pc, this);
- this.handler_pc = handler_pc;
- }
-
- /**
- * @param old_ih
- * old target, either start or end
- * @param new_ih
- * new target
- */
- @Override
- public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
- boolean targeted = false;
- if (start_pc == old_ih) {
- targeted = true;
- setStartPC(new_ih);
- }
- if (end_pc == old_ih) {
- targeted = true;
- setEndPC(new_ih);
- }
- if (handler_pc == old_ih) {
- targeted = true;
- setHandlerPC(new_ih);
- }
- if (!targeted) {
- throw new ClassGenException("Not targeting " + old_ih + ", but {"
- + start_pc + ", " + end_pc + ", " + handler_pc + "}");
- }
- }
-
- /**
- * @return true, if ih is target of this handler
- */
- @Override
- public boolean containsTarget(InstructionHandle ih) {
- return (start_pc == ih) || (end_pc == ih) || (handler_pc == ih);
- }
-
- /** Sets the type of the Exception to catch. Set 'null' for ANY. */
- public void setCatchType(ObjectType catch_type) {
- this.catch_type = catch_type;
- }
-
- /** Gets the type of the Exception to catch, 'null' for ANY. */
- public ObjectType getCatchType() {
- return catch_type;
- }
-
- /**
- * @return start of handled region (inclusive)
- */
- public InstructionHandle getStartPC() {
- return start_pc;
- }
-
- /**
- * @return end of handled region (inclusive)
- */
- public InstructionHandle getEndPC() {
- return end_pc;
- }
-
- /**
- * @return start of handler
- */
- public InstructionHandle getHandlerPC() {
- return handler_pc;
- }
-
- @Override
- public String toString() {
- return "CodeExceptionGen(" + start_pc + ", " + end_pc + ", "
- + handler_pc + ")";
- }
-
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- System.err.println(e);
- return null;
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/CompoundInstruction.java b/src/org/apache/bcel/generic/CompoundInstruction.java
deleted file mode 100644
index 2ad6f3a..0000000
--- a/src/org/apache/bcel/generic/CompoundInstruction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Wrapper class for `compound' operations, virtual instructions that don't
- * exist as byte code, but give a useful meaning. For example, the (virtual)
- * PUSH instruction takes an arbitray argument and produces the appropiate code
- * at dump time (ICONST, LDC, BIPUSH, ...). Also you can use the SWITCH
- * instruction as a useful template for either LOOKUPSWITCH or TABLESWITCH.
- *
- * The interface provides the possibilty for the user to write `templates' or
- * `macros' for such reuseable code patterns.
- *
- * @version $Id: CompoundInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see PUSH
- * @see SWITCH
- */
-public interface CompoundInstruction {
-
- public InstructionList getInstructionList();
-}
diff --git a/src/org/apache/bcel/generic/ConstantPoolGen.java b/src/org/apache/bcel/generic/ConstantPoolGen.java
deleted file mode 100644
index 96fe39b..0000000
--- a/src/org/apache/bcel/generic/ConstantPoolGen.java
+++ /dev/null
@@ -1,804 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.classfile.Constant;
-import org.apache.bcel.classfile.ConstantCP;
-import org.apache.bcel.classfile.ConstantClass;
-import org.apache.bcel.classfile.ConstantDouble;
-import org.apache.bcel.classfile.ConstantFieldref;
-import org.apache.bcel.classfile.ConstantFloat;
-import org.apache.bcel.classfile.ConstantInteger;
-import org.apache.bcel.classfile.ConstantInterfaceMethodref;
-import org.apache.bcel.classfile.ConstantLong;
-import org.apache.bcel.classfile.ConstantMethodref;
-import org.apache.bcel.classfile.ConstantNameAndType;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.classfile.ConstantString;
-import org.apache.bcel.classfile.ConstantUtf8;
-
-/**
- * This class is used to build up a constant pool. The user adds constants via
- * `addXXX' methods, `addString', `addClass', etc.. These methods return an
- * index into the constant pool. Finally, `getFinalConstantPool()' returns the
- * constant pool built up. Intermediate versions of the constant pool can be
- * obtained with `getConstantPool()'. A constant pool has capacity for
- * Constants.MAX_SHORT entries. Note that the first (0) is used by the JVM and
- * that Double and Long constants need two slots.
- *
- * @version $Id: ConstantPoolGen.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constant
- */
-public class ConstantPoolGen implements java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected int size = 1024; // Inital size, sufficient in most cases
- protected Constant[] constants = new Constant[size];
- protected int index = 1; // First entry (0) used by JVM
- private static final String METHODREF_DELIM = ":";
- private static final String IMETHODREF_DELIM = "#";
- private static final String FIELDREF_DELIM = "&";
- private static final String NAT_DELIM = "%";
-
- private static class Index implements java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- int index;
-
- Index(int i) {
- index = i;
- }
- }
-
- /**
- * Initialize with given array of constants.
- *
- * @param cs
- * array of given constants, new ones will be appended
- */
- public ConstantPoolGen(Constant[] cs) {
- if (cs.length > size) {
- size = cs.length;
- constants = new Constant[size];
- }
- System.arraycopy(cs, 0, constants, 0, cs.length);
- if (cs.length > 0) {
- index = cs.length;
- }
- for (int i = 1; i < index; i++) {
- Constant c = constants[i];
- if (c instanceof ConstantString) {
- ConstantString s = (ConstantString) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[s.getStringIndex()];
- String key = u8.getBytes();
- if (!string_table.containsKey(key)) {
- string_table.put(key, new Index(i));
- }
- } else if (c instanceof ConstantClass) {
- ConstantClass s = (ConstantClass) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[s.getNameIndex()];
- String key = u8.getBytes();
- if (!class_table.containsKey(key)) {
- class_table.put(key, new Index(i));
- }
- } else if (c instanceof ConstantNameAndType) {
- ConstantNameAndType n = (ConstantNameAndType) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[n.getNameIndex()];
- ConstantUtf8 u8_2 = (ConstantUtf8) constants[n
- .getSignatureIndex()];
- String key = u8.getBytes() + NAT_DELIM + u8_2.getBytes();
- if (!n_a_t_table.containsKey(key)) {
- n_a_t_table.put(key, new Index(i));
- }
- } else if (c instanceof ConstantUtf8) {
- ConstantUtf8 u = (ConstantUtf8) c;
- String key = u.getBytes();
- if (!utf8_table.containsKey(key)) {
- utf8_table.put(key, new Index(i));
- }
- } else if (c instanceof ConstantCP) {
- ConstantCP m = (ConstantCP) c;
- ConstantClass clazz = (ConstantClass) constants[m
- .getClassIndex()];
- ConstantNameAndType n = (ConstantNameAndType) constants[m
- .getNameAndTypeIndex()];
- ConstantUtf8 u8 = (ConstantUtf8) constants[clazz.getNameIndex()];
- String class_name = u8.getBytes().replace('/', '.');
- u8 = (ConstantUtf8) constants[n.getNameIndex()];
- String method_name = u8.getBytes();
- u8 = (ConstantUtf8) constants[n.getSignatureIndex()];
- String signature = u8.getBytes();
- String delim = METHODREF_DELIM;
- if (c instanceof ConstantInterfaceMethodref) {
- delim = IMETHODREF_DELIM;
- } else if (c instanceof ConstantFieldref) {
- delim = FIELDREF_DELIM;
- }
- String key = class_name + delim + method_name + delim
- + signature;
- if (!cp_table.containsKey(key)) {
- cp_table.put(key, new Index(i));
- }
- }
- }
- }
-
- /**
- * Initialize with given constant pool.
- */
- public ConstantPoolGen(ConstantPool cp) {
- this(cp.getConstantPool());
- }
-
- /**
- * Create empty constant pool.
- */
- public ConstantPoolGen() {
- }
-
- /**
- * Resize internal array of constants.
- */
- protected void adjustSize() {
- if (index + 3 >= size) {
- Constant[] cs = constants;
- size *= 2;
- constants = new Constant[size];
- System.arraycopy(cs, 0, constants, 0, index);
- }
- }
-
- private Map string_table = new HashMap();
-
- /**
- * Look for ConstantString in ConstantPool containing String `str'.
- *
- * @param str
- * String to search for
- * @return index on success, -1 otherwise
- */
- public int lookupString(String str) {
- Index index = string_table.get(str);
- return (index != null) ? index.index : -1;
- }
-
- /**
- * Add a new String constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param str
- * String to add
- * @return index of entry
- */
- public int addString(String str) {
- int ret;
- if ((ret = lookupString(str)) != -1) {
- return ret; // Already in CP
- }
- int utf8 = addUtf8(str);
- adjustSize();
- ConstantString s = new ConstantString(utf8);
- ret = index;
- constants[index++] = s;
- if (!string_table.containsKey(str)) {
- string_table.put(str, new Index(ret));
- }
- return ret;
- }
-
- private Map class_table = new HashMap();
-
- /**
- * Look for ConstantClass in ConstantPool named `str'.
- *
- * @param str
- * String to search for
- * @return index on success, -1 otherwise
- */
- public int lookupClass(String str) {
- Index index = class_table.get(str.replace('.', '/'));
- return (index != null) ? index.index : -1;
- }
-
- private int addClass_(String clazz) {
- int ret;
- if ((ret = lookupClass(clazz)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ConstantClass c = new ConstantClass(addUtf8(clazz));
- ret = index;
- constants[index++] = c;
- if (!class_table.containsKey(clazz)) {
- class_table.put(clazz, new Index(ret));
- }
- return ret;
- }
-
- /**
- * Add a new Class reference to the ConstantPool, if it is not already in
- * there.
- *
- * @param str
- * Class to add
- * @return index of entry
- */
- public int addClass(String str) {
- return addClass_(str.replace('.', '/'));
- }
-
- /**
- * Add a new Class reference to the ConstantPool for a given type.
- *
- * @param type
- * Class to add
- * @return index of entry
- */
- public int addClass(ObjectType type) {
- return addClass(type.getClassName());
- }
-
- /**
- * Add a reference to an array class (e.g. String[][]) as needed by
- * MULTIANEWARRAY instruction, e.g. to the ConstantPool.
- *
- * @param type
- * type of array class
- * @return index of entry
- */
- public int addArrayClass(ArrayType type) {
- return addClass_(type.getSignature());
- }
-
- /**
- * Look for ConstantInteger in ConstantPool.
- *
- * @param n
- * integer number to look for
- * @return index on success, -1 otherwise
- */
- public int lookupInteger(int n) {
- for (int i = 1; i < index; i++) {
- if (constants[i] instanceof ConstantInteger) {
- ConstantInteger c = (ConstantInteger) constants[i];
- if (c.getBytes() == n) {
- return i;
- }
- }
- }
- return -1;
- }
-
- /**
- * Add a new Integer constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param n
- * integer number to add
- * @return index of entry
- */
- public int addInteger(int n) {
- int ret;
- if ((ret = lookupInteger(n)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ret = index;
- constants[index++] = new ConstantInteger(n);
- return ret;
- }
-
- /**
- * Look for ConstantFloat in ConstantPool.
- *
- * @param n
- * Float number to look for
- * @return index on success, -1 otherwise
- */
- public int lookupFloat(float n) {
- int bits = Float.floatToIntBits(n);
- for (int i = 1; i < index; i++) {
- if (constants[i] instanceof ConstantFloat) {
- ConstantFloat c = (ConstantFloat) constants[i];
- if (Float.floatToIntBits(c.getBytes()) == bits) {
- return i;
- }
- }
- }
- return -1;
- }
-
- /**
- * Add a new Float constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param n
- * Float number to add
- * @return index of entry
- */
- public int addFloat(float n) {
- int ret;
- if ((ret = lookupFloat(n)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ret = index;
- constants[index++] = new ConstantFloat(n);
- return ret;
- }
-
- private Map utf8_table = new HashMap();
-
- /**
- * Look for ConstantUtf8 in ConstantPool.
- *
- * @param n
- * Utf8 string to look for
- * @return index on success, -1 otherwise
- */
- public int lookupUtf8(String n) {
- Index index = utf8_table.get(n);
- return (index != null) ? index.index : -1;
- }
-
- /**
- * Add a new Utf8 constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param n
- * Utf8 string to add
- * @return index of entry
- */
- public int addUtf8(String n) {
- int ret;
- if ((ret = lookupUtf8(n)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ret = index;
- constants[index++] = new ConstantUtf8(n);
- if (!utf8_table.containsKey(n)) {
- utf8_table.put(n, new Index(ret));
- }
- return ret;
- }
-
- /**
- * Look for ConstantLong in ConstantPool.
- *
- * @param n
- * Long number to look for
- * @return index on success, -1 otherwise
- */
- public int lookupLong(long n) {
- for (int i = 1; i < index; i++) {
- if (constants[i] instanceof ConstantLong) {
- ConstantLong c = (ConstantLong) constants[i];
- if (c.getBytes() == n) {
- return i;
- }
- }
- }
- return -1;
- }
-
- /**
- * Add a new long constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param n
- * Long number to add
- * @return index of entry
- */
- public int addLong(long n) {
- int ret;
- if ((ret = lookupLong(n)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ret = index;
- constants[index] = new ConstantLong(n);
- index += 2; // Wastes one entry according to spec
- return ret;
- }
-
- /**
- * Look for ConstantDouble in ConstantPool.
- *
- * @param n
- * Double number to look for
- * @return index on success, -1 otherwise
- */
- public int lookupDouble(double n) {
- long bits = Double.doubleToLongBits(n);
- for (int i = 1; i < index; i++) {
- if (constants[i] instanceof ConstantDouble) {
- ConstantDouble c = (ConstantDouble) constants[i];
- if (Double.doubleToLongBits(c.getBytes()) == bits) {
- return i;
- }
- }
- }
- return -1;
- }
-
- /**
- * Add a new double constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param n
- * Double number to add
- * @return index of entry
- */
- public int addDouble(double n) {
- int ret;
- if ((ret = lookupDouble(n)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- ret = index;
- constants[index] = new ConstantDouble(n);
- index += 2; // Wastes one entry according to spec
- return ret;
- }
-
- private Map n_a_t_table = new HashMap();
-
- /**
- * Look for ConstantNameAndType in ConstantPool.
- *
- * @param name
- * of variable/method
- * @param signature
- * of variable/method
- * @return index on success, -1 otherwise
- */
- public int lookupNameAndType(String name, String signature) {
- Index _index = n_a_t_table.get(name + NAT_DELIM + signature);
- return (_index != null) ? _index.index : -1;
- }
-
- /**
- * Add a new NameAndType constant to the ConstantPool if it is not already
- * in there.
- *
- * @param name
- * Name string to add
- * @param signature
- * signature string to add
- * @return index of entry
- */
- public int addNameAndType(String name, String signature) {
- int ret;
- int name_index, signature_index;
- if ((ret = lookupNameAndType(name, signature)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- name_index = addUtf8(name);
- signature_index = addUtf8(signature);
- ret = index;
- constants[index++] = new ConstantNameAndType(name_index,
- signature_index);
- String key = name + NAT_DELIM + signature;
- if (!n_a_t_table.containsKey(key)) {
- n_a_t_table.put(key, new Index(ret));
- }
- return ret;
- }
-
- private Map cp_table = new HashMap();
-
- /**
- * Look for ConstantMethodref in ConstantPool.
- *
- * @param class_name
- * Where to find method
- * @param method_name
- * Guess what
- * @param signature
- * return and argument types
- * @return index on success, -1 otherwise
- */
- public int lookupMethodref(String class_name, String method_name,
- String signature) {
- Index index = cp_table.get(class_name + METHODREF_DELIM + method_name
- + METHODREF_DELIM + signature);
- return (index != null) ? index.index : -1;
- }
-
- public int lookupMethodref(MethodGen method) {
- return lookupMethodref(method.getClassName(), method.getName(),
- method.getSignature());
- }
-
- /**
- * Add a new Methodref constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param class_name
- * class name string to add
- * @param method_name
- * method name string to add
- * @param signature
- * method signature string to add
- * @return index of entry
- */
- public int addMethodref(String class_name, String method_name,
- String signature) {
- int ret, class_index, name_and_type_index;
- if ((ret = lookupMethodref(class_name, method_name, signature)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- name_and_type_index = addNameAndType(method_name, signature);
- class_index = addClass(class_name);
- ret = index;
- constants[index++] = new ConstantMethodref(class_index,
- name_and_type_index);
- String key = class_name + METHODREF_DELIM + method_name
- + METHODREF_DELIM + signature;
- if (!cp_table.containsKey(key)) {
- cp_table.put(key, new Index(ret));
- }
- return ret;
- }
-
- public int addMethodref(MethodGen method) {
- return addMethodref(method.getClassName(), method.getName(),
- method.getSignature());
- }
-
- /**
- * Look for ConstantInterfaceMethodref in ConstantPool.
- *
- * @param class_name
- * Where to find method
- * @param method_name
- * Guess what
- * @param signature
- * return and argument types
- * @return index on success, -1 otherwise
- */
- public int lookupInterfaceMethodref(String class_name, String method_name,
- String signature) {
- Index index = cp_table.get(class_name + IMETHODREF_DELIM + method_name
- + IMETHODREF_DELIM + signature);
- return (index != null) ? index.index : -1;
- }
-
- public int lookupInterfaceMethodref(MethodGen method) {
- return lookupInterfaceMethodref(method.getClassName(),
- method.getName(), method.getSignature());
- }
-
- /**
- * Add a new InterfaceMethodref constant to the ConstantPool, if it is not
- * already in there.
- *
- * @param class_name
- * class name string to add
- * @param method_name
- * method name string to add
- * @param signature
- * signature string to add
- * @return index of entry
- */
- public int addInterfaceMethodref(String class_name, String method_name,
- String signature) {
- int ret, class_index, name_and_type_index;
- if ((ret = lookupInterfaceMethodref(class_name, method_name, signature)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- class_index = addClass(class_name);
- name_and_type_index = addNameAndType(method_name, signature);
- ret = index;
- constants[index++] = new ConstantInterfaceMethodref(class_index,
- name_and_type_index);
- String key = class_name + IMETHODREF_DELIM + method_name
- + IMETHODREF_DELIM + signature;
- if (!cp_table.containsKey(key)) {
- cp_table.put(key, new Index(ret));
- }
- return ret;
- }
-
- public int addInterfaceMethodref(MethodGen method) {
- return addInterfaceMethodref(method.getClassName(), method.getName(),
- method.getSignature());
- }
-
- /**
- * Look for ConstantFieldref in ConstantPool.
- *
- * @param class_name
- * Where to find method
- * @param field_name
- * Guess what
- * @param signature
- * return and argument types
- * @return index on success, -1 otherwise
- */
- public int lookupFieldref(String class_name, String field_name,
- String signature) {
- Index index = cp_table.get(class_name + FIELDREF_DELIM + field_name
- + FIELDREF_DELIM + signature);
- return (index != null) ? index.index : -1;
- }
-
- /**
- * Add a new Fieldref constant to the ConstantPool, if it is not already in
- * there.
- *
- * @param class_name
- * class name string to add
- * @param field_name
- * field name string to add
- * @param signature
- * signature string to add
- * @return index of entry
- */
- public int addFieldref(String class_name, String field_name,
- String signature) {
- int ret;
- int class_index, name_and_type_index;
- if ((ret = lookupFieldref(class_name, field_name, signature)) != -1) {
- return ret; // Already in CP
- }
- adjustSize();
- class_index = addClass(class_name);
- name_and_type_index = addNameAndType(field_name, signature);
- ret = index;
- constants[index++] = new ConstantFieldref(class_index,
- name_and_type_index);
- String key = class_name + FIELDREF_DELIM + field_name + FIELDREF_DELIM
- + signature;
- if (!cp_table.containsKey(key)) {
- cp_table.put(key, new Index(ret));
- }
- return ret;
- }
-
- /**
- * @param i
- * index in constant pool
- * @return constant pool entry at index i
- */
- public Constant getConstant(int i) {
- return constants[i];
- }
-
- /**
- * Use with care!
- *
- * @param i
- * index in constant pool
- * @param c
- * new constant pool entry at index i
- */
- public void setConstant(int i, Constant c) {
- constants[i] = c;
- }
-
- /**
- * @return intermediate constant pool
- */
- public ConstantPool getConstantPool() {
- return new ConstantPool(constants);
- }
-
- /**
- * @return current size of constant pool
- */
- public int getSize() {
- return index;
- }
-
- /**
- * @return constant pool with proper length
- */
- public ConstantPool getFinalConstantPool() {
- Constant[] cs = new Constant[index];
- System.arraycopy(constants, 0, cs, 0, index);
- return new ConstantPool(cs);
- }
-
- /**
- * @return String representation.
- */
- @Override
- public String toString() {
- StringBuffer buf = new StringBuffer();
- for (int i = 1; i < index; i++) {
- buf.append(i).append(")").append(constants[i]).append("\n");
- }
- return buf.toString();
- }
-
- /**
- * Import constant from another ConstantPool and return new index.
- */
- public int addConstant(Constant c, ConstantPoolGen cp) {
- Constant[] constants = cp.getConstantPool().getConstantPool();
- switch (c.getTag()) {
- case Constants.CONSTANT_String: {
- ConstantString s = (ConstantString) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[s.getStringIndex()];
- return addString(u8.getBytes());
- }
- case Constants.CONSTANT_Class: {
- ConstantClass s = (ConstantClass) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[s.getNameIndex()];
- return addClass(u8.getBytes());
- }
- case Constants.CONSTANT_NameAndType: {
- ConstantNameAndType n = (ConstantNameAndType) c;
- ConstantUtf8 u8 = (ConstantUtf8) constants[n.getNameIndex()];
- ConstantUtf8 u8_2 = (ConstantUtf8) constants[n.getSignatureIndex()];
- return addNameAndType(u8.getBytes(), u8_2.getBytes());
- }
- case Constants.CONSTANT_Utf8:
- return addUtf8(((ConstantUtf8) c).getBytes());
- case Constants.CONSTANT_Double:
- return addDouble(((ConstantDouble) c).getBytes());
- case Constants.CONSTANT_Float:
- return addFloat(((ConstantFloat) c).getBytes());
- case Constants.CONSTANT_Long:
- return addLong(((ConstantLong) c).getBytes());
- case Constants.CONSTANT_Integer:
- return addInteger(((ConstantInteger) c).getBytes());
- case Constants.CONSTANT_InterfaceMethodref:
- case Constants.CONSTANT_Methodref:
- case Constants.CONSTANT_Fieldref: {
- ConstantCP m = (ConstantCP) c;
- ConstantClass clazz = (ConstantClass) constants[m.getClassIndex()];
- ConstantNameAndType n = (ConstantNameAndType) constants[m
- .getNameAndTypeIndex()];
- ConstantUtf8 u8 = (ConstantUtf8) constants[clazz.getNameIndex()];
- String class_name = u8.getBytes().replace('/', '.');
- u8 = (ConstantUtf8) constants[n.getNameIndex()];
- String name = u8.getBytes();
- u8 = (ConstantUtf8) constants[n.getSignatureIndex()];
- String signature = u8.getBytes();
- switch (c.getTag()) {
- case Constants.CONSTANT_InterfaceMethodref:
- return addInterfaceMethodref(class_name, name, signature);
- case Constants.CONSTANT_Methodref:
- return addMethodref(class_name, name, signature);
- case Constants.CONSTANT_Fieldref:
- return addFieldref(class_name, name, signature);
- default: // Never reached
- throw new RuntimeException("Unknown constant type " + c);
- }
- }
- default: // Never reached
- throw new RuntimeException("Unknown constant type " + c);
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/ConstantPushInstruction.java b/src/org/apache/bcel/generic/ConstantPushInstruction.java
deleted file mode 100644
index 7fcfea8..0000000
--- a/src/org/apache/bcel/generic/ConstantPushInstruction.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Denotes a push instruction that produces a literal on the stack such as
- * SIPUSH, BIPUSH, ICONST, etc.
- *
- * @version $Id: ConstantPushInstruction.java 386056 2006-03-15 11:31:56Z tcurdt
- * $
- * @author M. Dahm
- *
- * @see ICONST
- * @see SIPUSH
- */
-public interface ConstantPushInstruction extends PushInstruction,
- TypedInstruction {
-
- public Number getValue();
-}
diff --git a/src/org/apache/bcel/generic/ConversionInstruction.java b/src/org/apache/bcel/generic/ConversionInstruction.java
deleted file mode 100644
index 1cc400a..0000000
--- a/src/org/apache/bcel/generic/ConversionInstruction.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * Super class for the x2y family of instructions.
- *
- * @version $Id: ConversionInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class ConversionInstruction extends Instruction implements
- TypedInstruction, StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ConversionInstruction() {
- }
-
- /**
- * @param opcode
- * opcode of instruction
- */
- protected ConversionInstruction(short opcode) {
- super(opcode, (short) 1);
- }
-
- /**
- * @return type associated with the instruction
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- switch (opcode) {
- case Constants.D2I:
- case Constants.F2I:
- case Constants.L2I:
- return Type.INT;
- case Constants.D2F:
- case Constants.I2F:
- case Constants.L2F:
- return Type.FLOAT;
- case Constants.D2L:
- case Constants.F2L:
- case Constants.I2L:
- return Type.LONG;
- case Constants.F2D:
- case Constants.I2D:
- case Constants.L2D:
- return Type.DOUBLE;
- case Constants.I2B:
- return Type.BYTE;
- case Constants.I2C:
- return Type.CHAR;
- case Constants.I2S:
- return Type.SHORT;
- default: // Never reached
- throw new ClassGenException("Unknown type " + opcode);
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/D2F.java b/src/org/apache/bcel/generic/D2F.java
deleted file mode 100644
index 8f733cb..0000000
--- a/src/org/apache/bcel/generic/D2F.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * D2F - Convert double to float
- *
- *
- *
- * @version $Id: D2F.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class D2F extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert double to float
- */
- public D2F() {
- super(org.apache.bcel.Constants.D2F);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitD2F(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/D2I.java b/src/org/apache/bcel/generic/D2I.java
deleted file mode 100644
index d18b4c4..0000000
--- a/src/org/apache/bcel/generic/D2I.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * D2I - Convert double to int
- *
- *
- *
- * @version $Id: D2I.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class D2I extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert double to int
- */
- public D2I() {
- super(org.apache.bcel.Constants.D2I);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitD2I(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/D2L.java b/src/org/apache/bcel/generic/D2L.java
deleted file mode 100644
index 39b653b..0000000
--- a/src/org/apache/bcel/generic/D2L.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * D2L - Convert double to long
- *
- *
- *
- * @version $Id: D2L.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class D2L extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert double to long
- */
- public D2L() {
- super(org.apache.bcel.Constants.D2L);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitD2L(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DADD.java b/src/org/apache/bcel/generic/DADD.java
deleted file mode 100644
index 28b0625..0000000
--- a/src/org/apache/bcel/generic/DADD.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DADD - Add doubles
- *
- *
- *
- * ..., result.word1, result1.word2
- *
- * @version $Id: DADD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DADD extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Add doubles
- */
- public DADD() {
- super(org.apache.bcel.Constants.DADD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDADD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DALOAD.java b/src/org/apache/bcel/generic/DALOAD.java
deleted file mode 100644
index 1f91fd7..0000000
--- a/src/org/apache/bcel/generic/DALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DALOAD - Load double from array
- *
- *
- *
- * @version $Id: DALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load double from array
- */
- public DALOAD() {
- super(org.apache.bcel.Constants.DALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitDALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DASTORE.java b/src/org/apache/bcel/generic/DASTORE.java
deleted file mode 100644
index 18b4166..0000000
--- a/src/org/apache/bcel/generic/DASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DASTORE - Store into double array
- *
- *
- *
- * @version $Id: DASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store double into array
- */
- public DASTORE() {
- super(org.apache.bcel.Constants.DASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitDASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DCMPG.java b/src/org/apache/bcel/generic/DCMPG.java
deleted file mode 100644
index ab68ced..0000000
--- a/src/org/apache/bcel/generic/DCMPG.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DCMPG - Compare doubles: value1 > value2
- *
- *
- *
- * ..., result
- *
- * @version $Id: DCMPG.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DCMPG extends Instruction implements TypedInstruction,
- StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DCMPG() {
- super(org.apache.bcel.Constants.DCMPG, (short) 1);
- }
-
- /**
- * @return Type.DOUBLE
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.DOUBLE;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitDCMPG(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DCMPL.java b/src/org/apache/bcel/generic/DCMPL.java
deleted file mode 100644
index f3d98fd..0000000
--- a/src/org/apache/bcel/generic/DCMPL.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DCMPL - Compare doubles: value1 < value2
- *
- *
- *
- * ..., result
- *
- * @version $Id: DCMPL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DCMPL extends Instruction implements TypedInstruction,
- StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DCMPL() {
- super(org.apache.bcel.Constants.DCMPL, (short) 1);
- }
-
- /**
- * @return Type.DOUBLE
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.DOUBLE;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitDCMPL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DCONST.java b/src/org/apache/bcel/generic/DCONST.java
deleted file mode 100644
index 6fa8ad8..0000000
--- a/src/org/apache/bcel/generic/DCONST.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DCONST - Push 0.0 or 1.0, other values cause an exception
- *
- *
- * Stack: ... -> ...,
- *
- *
- * @version $Id: DCONST.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DCONST extends Instruction implements ConstantPushInstruction,
- TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private double value;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- DCONST() {
- }
-
- public DCONST(double f) {
- super(org.apache.bcel.Constants.DCONST_0, (short) 1);
- if (f == 0.0) {
- opcode = org.apache.bcel.Constants.DCONST_0;
- } else if (f == 1.0) {
- opcode = org.apache.bcel.Constants.DCONST_1;
- } else {
- throw new ClassGenException(
- "DCONST can be used only for 0.0 and 1.0: " + f);
- }
- value = f;
- }
-
- @Override
- public Number getValue() {
- return new Double(value);
- }
-
- /**
- * @return Type.DOUBLE
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.DOUBLE;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitPushInstruction(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitConstantPushInstruction(this);
- v.visitDCONST(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DDIV.java b/src/org/apache/bcel/generic/DDIV.java
deleted file mode 100644
index 8df2367..0000000
--- a/src/org/apache/bcel/generic/DDIV.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DDIV - Divide doubles
- *
- *
- *
- * ..., result.word1, result.word2
- *
- * @version $Id: DDIV.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DDIV extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Divide doubles
- */
- public DDIV() {
- super(org.apache.bcel.Constants.DDIV);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDDIV(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DLOAD.java b/src/org/apache/bcel/generic/DLOAD.java
deleted file mode 100644
index c7a6cbb..0000000
--- a/src/org/apache/bcel/generic/DLOAD.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DLOAD - Load double from local variable
- *
- *
- *
- * @version $Id: DLOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DLOAD extends LoadInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- DLOAD() {
- super(org.apache.bcel.Constants.DLOAD,
- org.apache.bcel.Constants.DLOAD_0);
- }
-
- /**
- * Load double from local variable
- *
- * @param n
- * index of local variable
- */
- public DLOAD(int n) {
- super(org.apache.bcel.Constants.DLOAD,
- org.apache.bcel.Constants.DLOAD_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitDLOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DMUL.java b/src/org/apache/bcel/generic/DMUL.java
deleted file mode 100644
index 130f5df..0000000
--- a/src/org/apache/bcel/generic/DMUL.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DMUL - Multiply doubles
- *
- *
- *
- * ..., result.word1, result.word2
- *
- * @version $Id: DMUL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DMUL extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Multiply doubles
- */
- public DMUL() {
- super(org.apache.bcel.Constants.DMUL);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDMUL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DNEG.java b/src/org/apache/bcel/generic/DNEG.java
deleted file mode 100644
index 8046d70..0000000
--- a/src/org/apache/bcel/generic/DNEG.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DNEG - Negate double
- *
- *
- *
- * @version $Id: DNEG.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DNEG extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DNEG() {
- super(org.apache.bcel.Constants.DNEG);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDNEG(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DREM.java b/src/org/apache/bcel/generic/DREM.java
deleted file mode 100644
index 84599f0..0000000
--- a/src/org/apache/bcel/generic/DREM.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DREM - Remainder of doubles
- *
- *
- *
- * ..., result.word1, result.word2
- *
- * @version $Id: DREM.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DREM extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Remainder of doubles
- */
- public DREM() {
- super(org.apache.bcel.Constants.DREM);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDREM(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DRETURN.java b/src/org/apache/bcel/generic/DRETURN.java
deleted file mode 100644
index 1bf6d16..0000000
--- a/src/org/apache/bcel/generic/DRETURN.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DRETURN - Return double from method
- *
- *
- *
- * @version $Id: DRETURN.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DRETURN extends ReturnInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Return double from method
- */
- public DRETURN() {
- super(org.apache.bcel.Constants.DRETURN);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitReturnInstruction(this);
- v.visitDRETURN(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DSTORE.java b/src/org/apache/bcel/generic/DSTORE.java
deleted file mode 100644
index 1040e06..0000000
--- a/src/org/apache/bcel/generic/DSTORE.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DSTORE - Store double into local variable
- *
- *
- *
- * @version $Id: DSTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DSTORE extends StoreInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- DSTORE() {
- super(org.apache.bcel.Constants.DSTORE,
- org.apache.bcel.Constants.DSTORE_0);
- }
-
- /**
- * Store double into local variable
- *
- * @param n
- * index of local variable
- */
- public DSTORE(int n) {
- super(org.apache.bcel.Constants.DSTORE,
- org.apache.bcel.Constants.DSTORE_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitDSTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DSUB.java b/src/org/apache/bcel/generic/DSUB.java
deleted file mode 100644
index 63a6f7b..0000000
--- a/src/org/apache/bcel/generic/DSUB.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DSUB - Substract doubles
- *
- *
- *
- * ..., result.word1, result.word2
- *
- * @version $Id: DSUB.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DSUB extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Substract doubles
- */
- public DSUB() {
- super(org.apache.bcel.Constants.DSUB);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitDSUB(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP.java b/src/org/apache/bcel/generic/DUP.java
deleted file mode 100644
index 7726a0a..0000000
--- a/src/org/apache/bcel/generic/DUP.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP - Duplicate top operand stack word
- *
- *
- * Stack: ..., word -> ..., word, word
- *
- *
- * @version $Id: DUP.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DUP extends StackInstruction implements PushInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DUP() {
- super(org.apache.bcel.Constants.DUP);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitPushInstruction(this);
- v.visitStackInstruction(this);
- v.visitDUP(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP2.java b/src/org/apache/bcel/generic/DUP2.java
deleted file mode 100644
index e33c39f..0000000
--- a/src/org/apache/bcel/generic/DUP2.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP2 - Duplicate two top operand stack words
- *
- *
- *
- * @version $Id: DUP2.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DUP2 extends StackInstruction implements PushInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DUP2() {
- super(org.apache.bcel.Constants.DUP2);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitPushInstruction(this);
- v.visitStackInstruction(this);
- v.visitDUP2(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP2_X1.java b/src/org/apache/bcel/generic/DUP2_X1.java
deleted file mode 100644
index b35b991..0000000
--- a/src/org/apache/bcel/generic/DUP2_X1.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP2_X1 - Duplicate two top operand stack words and put three down
- *
- *
- *
- * @version $Id: DUP2_X1.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DUP2_X1 extends StackInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DUP2_X1() {
- super(org.apache.bcel.Constants.DUP2_X1);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackInstruction(this);
- v.visitDUP2_X1(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP2_X2.java b/src/org/apache/bcel/generic/DUP2_X2.java
deleted file mode 100644
index f4bd487..0000000
--- a/src/org/apache/bcel/generic/DUP2_X2.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP2_X2 - Duplicate two top operand stack words and put four down
- *
- *
- *
- * @version $Id: DUP2_X2.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DUP2_X2 extends StackInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DUP2_X2() {
- super(org.apache.bcel.Constants.DUP2_X2);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackInstruction(this);
- v.visitDUP2_X2(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP_X1.java b/src/org/apache/bcel/generic/DUP_X1.java
deleted file mode 100644
index 22a20da..0000000
--- a/src/org/apache/bcel/generic/DUP_X1.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP_X1 - Duplicate top operand stack word and put two down
- *
- *
- *
- * @version $Id: DUP_X1.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class DUP_X1 extends StackInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public DUP_X1() {
- super(org.apache.bcel.Constants.DUP_X1);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackInstruction(this);
- v.visitDUP_X1(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/DUP_X2.java b/src/org/apache/bcel/generic/DUP_X2.java
deleted file mode 100644
index 0b94197..0000000
--- a/src/org/apache/bcel/generic/DUP_X2.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * DUP_X2 - Duplicate top operand stack word and put three down
- *
- *
- *
- * @version $Id: F2D.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class F2D extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert float to double
- */
- public F2D() {
- super(org.apache.bcel.Constants.F2D);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitF2D(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/F2I.java b/src/org/apache/bcel/generic/F2I.java
deleted file mode 100644
index 31126f0..0000000
--- a/src/org/apache/bcel/generic/F2I.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * F2I - Convert float to int
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: F2I.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class F2I extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert float to int
- */
- public F2I() {
- super(org.apache.bcel.Constants.F2I);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitF2I(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/F2L.java b/src/org/apache/bcel/generic/F2L.java
deleted file mode 100644
index a0bd284..0000000
--- a/src/org/apache/bcel/generic/F2L.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * F2L - Convert float to long
- *
- *
- *
- * @version $Id: F2L.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class F2L extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert float to long
- */
- public F2L() {
- super(org.apache.bcel.Constants.F2L);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitF2L(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FADD.java b/src/org/apache/bcel/generic/FADD.java
deleted file mode 100644
index e08e360..0000000
--- a/src/org/apache/bcel/generic/FADD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FADD - Add floats
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: FADD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FADD extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Add floats
- */
- public FADD() {
- super(org.apache.bcel.Constants.FADD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFADD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FALOAD.java b/src/org/apache/bcel/generic/FALOAD.java
deleted file mode 100644
index c718f6a..0000000
--- a/src/org/apache/bcel/generic/FALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FALOAD - Load float from array
- *
- *
- * Stack: ..., arrayref, index -> ..., value
- *
- *
- * @version $Id: FALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load float from array
- */
- public FALOAD() {
- super(org.apache.bcel.Constants.FALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitFALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FASTORE.java b/src/org/apache/bcel/generic/FASTORE.java
deleted file mode 100644
index 4e8e13e..0000000
--- a/src/org/apache/bcel/generic/FASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FASTORE - Store into float array
- *
- *
- * Stack: ..., arrayref, index, value -> ...
- *
- *
- * @version $Id: FASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store float into array
- */
- public FASTORE() {
- super(org.apache.bcel.Constants.FASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitFASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FCMPG.java b/src/org/apache/bcel/generic/FCMPG.java
deleted file mode 100644
index da9504c..0000000
--- a/src/org/apache/bcel/generic/FCMPG.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FCMPG - Compare floats: value1 > value2
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: FCMPG.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FCMPG extends Instruction implements TypedInstruction,
- StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public FCMPG() {
- super(org.apache.bcel.Constants.FCMPG, (short) 1);
- }
-
- /**
- * @return Type.FLOAT
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.FLOAT;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitFCMPG(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FCMPL.java b/src/org/apache/bcel/generic/FCMPL.java
deleted file mode 100644
index 5ca6078..0000000
--- a/src/org/apache/bcel/generic/FCMPL.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FCMPL - Compare floats: value1 < value2
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: FCMPL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FCMPL extends Instruction implements TypedInstruction,
- StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public FCMPL() {
- super(org.apache.bcel.Constants.FCMPL, (short) 1);
- }
-
- /**
- * @return Type.FLOAT
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.FLOAT;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitFCMPL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FCONST.java b/src/org/apache/bcel/generic/FCONST.java
deleted file mode 100644
index 3f0c2dd..0000000
--- a/src/org/apache/bcel/generic/FCONST.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FCONST - Push 0.0, 1.0 or 2.0, other values cause an exception
- *
- *
- * Stack: ... -> ...,
- *
- *
- * @version $Id: FCONST.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FCONST extends Instruction implements ConstantPushInstruction,
- TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private float value;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- FCONST() {
- }
-
- public FCONST(float f) {
- super(org.apache.bcel.Constants.FCONST_0, (short) 1);
- if (f == 0.0) {
- opcode = org.apache.bcel.Constants.FCONST_0;
- } else if (f == 1.0) {
- opcode = org.apache.bcel.Constants.FCONST_1;
- } else if (f == 2.0) {
- opcode = org.apache.bcel.Constants.FCONST_2;
- } else {
- throw new ClassGenException(
- "FCONST can be used only for 0.0, 1.0 and 2.0: " + f);
- }
- value = f;
- }
-
- @Override
- public Number getValue() {
- return new Float(value);
- }
-
- /**
- * @return Type.FLOAT
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.FLOAT;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitPushInstruction(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitConstantPushInstruction(this);
- v.visitFCONST(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FDIV.java b/src/org/apache/bcel/generic/FDIV.java
deleted file mode 100644
index 5d8a840..0000000
--- a/src/org/apache/bcel/generic/FDIV.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FDIV - Divide floats
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: FDIV.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FDIV extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Divide floats
- */
- public FDIV() {
- super(org.apache.bcel.Constants.FDIV);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFDIV(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FLOAD.java b/src/org/apache/bcel/generic/FLOAD.java
deleted file mode 100644
index 5781361..0000000
--- a/src/org/apache/bcel/generic/FLOAD.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FLOAD - Load float from local variable
- *
- *
- * Stack ... -> ..., result
- *
- *
- * @version $Id: FLOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FLOAD extends LoadInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- FLOAD() {
- super(org.apache.bcel.Constants.FLOAD,
- org.apache.bcel.Constants.FLOAD_0);
- }
-
- /**
- * Load float from local variable
- *
- * @param n
- * index of local variable
- */
- public FLOAD(int n) {
- super(org.apache.bcel.Constants.FLOAD,
- org.apache.bcel.Constants.FLOAD_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitFLOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FMUL.java b/src/org/apache/bcel/generic/FMUL.java
deleted file mode 100644
index 90c21b0..0000000
--- a/src/org/apache/bcel/generic/FMUL.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FMUL - Multiply floats
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: FMUL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FMUL extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Multiply floats
- */
- public FMUL() {
- super(org.apache.bcel.Constants.FMUL);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFMUL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FNEG.java b/src/org/apache/bcel/generic/FNEG.java
deleted file mode 100644
index fe31946..0000000
--- a/src/org/apache/bcel/generic/FNEG.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FNEG - Negate float
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: FNEG.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FNEG extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public FNEG() {
- super(org.apache.bcel.Constants.FNEG);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFNEG(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FREM.java b/src/org/apache/bcel/generic/FREM.java
deleted file mode 100644
index 4ded950..0000000
--- a/src/org/apache/bcel/generic/FREM.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FREM - Remainder of floats
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: FREM.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FREM extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Remainder of floats
- */
- public FREM() {
- super(org.apache.bcel.Constants.FREM);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFREM(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FRETURN.java b/src/org/apache/bcel/generic/FRETURN.java
deleted file mode 100644
index 0946b65..0000000
--- a/src/org/apache/bcel/generic/FRETURN.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FRETURN - Return float from method
- *
- *
- * Stack: ..., value -> <empty>
- *
- *
- * @version $Id: FRETURN.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FRETURN extends ReturnInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Return float from method
- */
- public FRETURN() {
- super(org.apache.bcel.Constants.FRETURN);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitReturnInstruction(this);
- v.visitFRETURN(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FSTORE.java b/src/org/apache/bcel/generic/FSTORE.java
deleted file mode 100644
index fe0b2b7..0000000
--- a/src/org/apache/bcel/generic/FSTORE.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FSTORE - Store float into local variable
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: FSTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FSTORE extends StoreInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- FSTORE() {
- super(org.apache.bcel.Constants.FSTORE,
- org.apache.bcel.Constants.FSTORE_0);
- }
-
- /**
- * Store float into local variable
- *
- * @param n
- * index of local variable
- */
- public FSTORE(int n) {
- super(org.apache.bcel.Constants.FSTORE,
- org.apache.bcel.Constants.FSTORE_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitFSTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FSUB.java b/src/org/apache/bcel/generic/FSUB.java
deleted file mode 100644
index 7aab799..0000000
--- a/src/org/apache/bcel/generic/FSUB.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * FSUB - Substract floats
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: FSUB.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class FSUB extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Substract floats
- */
- public FSUB() {
- super(org.apache.bcel.Constants.FSUB);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitFSUB(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FieldGen.java b/src/org/apache/bcel/generic/FieldGen.java
deleted file mode 100644
index 71658e2..0000000
--- a/src/org/apache/bcel/generic/FieldGen.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.apache.bcel.Constants;
-import org.apache.bcel.classfile.Attribute;
-import org.apache.bcel.classfile.Constant;
-import org.apache.bcel.classfile.ConstantObject;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.classfile.ConstantValue;
-import org.apache.bcel.classfile.Field;
-import org.apache.bcel.classfile.Utility;
-import org.apache.bcel.util.BCELComparator;
-
-/**
- * Template class for building up a field. The only extraordinary thing one can
- * do is to add a constant value attribute to a field (which must of course be
- * compatible with to the declared type).
- *
- * @version $Id: FieldGen.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Field
- */
-public class FieldGen extends FieldGenOrMethodGen {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private Object value = null;
- private static BCELComparator _cmp = new BCELComparator() {
-
- @Override
- public boolean equals(Object o1, Object o2) {
- FieldGen THIS = (FieldGen) o1;
- FieldGen THAT = (FieldGen) o2;
- return THIS.getName().equals(THAT.getName())
- && THIS.getSignature().equals(THAT.getSignature());
- }
-
- @Override
- public int hashCode(Object o) {
- FieldGen THIS = (FieldGen) o;
- return THIS.getSignature().hashCode() ^ THIS.getName().hashCode();
- }
- };
-
- /**
- * Declare a field. If it is static (isStatic() == true) and has a basic
- * type like int or String it may have an initial value associated with it
- * as defined by setInitValue().
- *
- * @param access_flags
- * access qualifiers
- * @param type
- * field type
- * @param name
- * field name
- * @param cp
- * constant pool
- */
- public FieldGen(int access_flags, Type type, String name, ConstantPoolGen cp) {
- setAccessFlags(access_flags);
- setType(type);
- setName(name);
- setConstantPool(cp);
- }
-
- /**
- * Instantiate from existing field.
- *
- * @param field
- * Field object
- * @param cp
- * constant pool (must contain the same entries as the field's
- * constant pool)
- */
- public FieldGen(Field field, ConstantPoolGen cp) {
- this(field.getAccessFlags(), Type.getType(field.getSignature()), field
- .getName(), cp);
- Attribute[] attrs = field.getAttributes();
- for (int i = 0; i < attrs.length; i++) {
- if (attrs[i] instanceof ConstantValue) {
- setValue(((ConstantValue) attrs[i]).getConstantValueIndex());
- } else {
- addAttribute(attrs[i]);
- }
- }
- }
-
- private void setValue(int index) {
- ConstantPool cp = this.cp.getConstantPool();
- Constant c = cp.getConstant(index);
- value = ((ConstantObject) c).getConstantValue(cp);
- }
-
- /**
- * Set (optional) initial value of field, otherwise it will be set to
- * null/0/false by the JVM automatically.
- */
- public void setInitValue(String str) {
- checkType(new ObjectType("java.lang.String"));
- if (str != null) {
- value = str;
- }
- }
-
- public void setInitValue(long l) {
- checkType(Type.LONG);
- if (l != 0L) {
- value = new Long(l);
- }
- }
-
- public void setInitValue(int i) {
- checkType(Type.INT);
- if (i != 0) {
- value = new Integer(i);
- }
- }
-
- public void setInitValue(short s) {
- checkType(Type.SHORT);
- if (s != 0) {
- value = new Integer(s);
- }
- }
-
- public void setInitValue(char c) {
- checkType(Type.CHAR);
- if (c != 0) {
- value = new Integer(c);
- }
- }
-
- public void setInitValue(byte b) {
- checkType(Type.BYTE);
- if (b != 0) {
- value = new Integer(b);
- }
- }
-
- public void setInitValue(boolean b) {
- checkType(Type.BOOLEAN);
- if (b) {
- value = new Integer(1);
- }
- }
-
- public void setInitValue(float f) {
- checkType(Type.FLOAT);
- if (f != 0.0) {
- value = new Float(f);
- }
- }
-
- public void setInitValue(double d) {
- checkType(Type.DOUBLE);
- if (d != 0.0) {
- value = new Double(d);
- }
- }
-
- /**
- * Remove any initial value.
- */
- public void cancelInitValue() {
- value = null;
- }
-
- private void checkType(Type atype) {
- if (type == null) {
- throw new ClassGenException(
- "You haven't defined the type of the field yet");
- }
- if (!isFinal()) {
- throw new ClassGenException(
- "Only final fields may have an initial value!");
- }
- if (!type.equals(atype)) {
- throw new ClassGenException("Types are not compatible: " + type
- + " vs. " + atype);
- }
- }
-
- /**
- * Get field object after having set up all necessary values.
- */
- public Field getField() {
- String signature = getSignature();
- int name_index = cp.addUtf8(name);
- int signature_index = cp.addUtf8(signature);
- if (value != null) {
- checkType(type);
- int index = addConstant();
- addAttribute(new ConstantValue(cp.addUtf8("ConstantValue"), 2,
- index, cp.getConstantPool()));
- }
- return new Field(access_flags, name_index, signature_index,
- getAttributes(), cp.getConstantPool());
- }
-
- private int addConstant() {
- switch (type.getType()) {
- case Constants.T_INT:
- case Constants.T_CHAR:
- case Constants.T_BYTE:
- case Constants.T_BOOLEAN:
- case Constants.T_SHORT:
- return cp.addInteger(((Integer) value).intValue());
- case Constants.T_FLOAT:
- return cp.addFloat(((Float) value).floatValue());
- case Constants.T_DOUBLE:
- return cp.addDouble(((Double) value).doubleValue());
- case Constants.T_LONG:
- return cp.addLong(((Long) value).longValue());
- case Constants.T_REFERENCE:
- return cp.addString(((String) value));
- default:
- throw new RuntimeException("Oops: Unhandled : " + type.getType());
- }
- }
-
- @Override
- public String getSignature() {
- return type.getSignature();
- }
-
- private List observers;
-
- /**
- * Add observer for this object.
- */
- public void addObserver(FieldObserver o) {
- if (observers == null) {
- observers = new ArrayList();
- }
- observers.add(o);
- }
-
- /**
- * Remove observer for this object.
- */
- public void removeObserver(FieldObserver o) {
- if (observers != null) {
- observers.remove(o);
- }
- }
-
- /**
- * Call notify() method on all observers. This method is not called
- * automatically whenever the state has changed, but has to be called by the
- * user after he has finished editing the object.
- */
- public void update() {
- if (observers != null) {
- for (Iterator e = observers.iterator(); e.hasNext();) {
- e.next().notify(this);
- }
- }
- }
-
- public String getInitValue() {
- if (value != null) {
- return value.toString();
- } else {
- return null;
- }
- }
-
- /**
- * Return string representation close to declaration format, `public static
- * final short MAX = 100', e.g..
- *
- * @return String representation of field
- */
- @Override
- public final String toString() {
- String name, signature, access; // Short cuts to constant pool
- access = Utility.accessToString(access_flags);
- access = access.equals("") ? "" : (access + " ");
- signature = type.toString();
- name = getName();
- StringBuffer buf = new StringBuffer(32);
- buf.append(access).append(signature).append(" ").append(name);
- String value = getInitValue();
- if (value != null) {
- buf.append(" = ").append(value);
- }
- return buf.toString();
- }
-
- /**
- * @return deep copy of this field
- */
- public FieldGen copy(ConstantPoolGen cp) {
- FieldGen fg = (FieldGen) clone();
- fg.setConstantPool(cp);
- return fg;
- }
-
- /**
- * @return Comparison strategy object
- */
- public static BCELComparator getComparator() {
- return _cmp;
- }
-
- /**
- * @param comparator
- * Comparison strategy object
- */
- public static void setComparator(BCELComparator comparator) {
- _cmp = comparator;
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default two
- * FieldGen objects are said to be equal when their names and signatures are
- * equal.
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- return _cmp.equals(this, obj);
- }
-
- /**
- * Return value as defined by given BCELComparator strategy. By default
- * return the hashcode of the field's name XOR signature.
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return _cmp.hashCode(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/FieldGenOrMethodGen.java b/src/org/apache/bcel/generic/FieldGenOrMethodGen.java
deleted file mode 100644
index 172d0a6..0000000
--- a/src/org/apache/bcel/generic/FieldGenOrMethodGen.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.bcel.Constants;
-import org.apache.bcel.classfile.AccessFlags;
-import org.apache.bcel.classfile.Attribute;
-
-/**
- * Super class for FieldGen and MethodGen objects, since they have some methods
- * in common!
- *
- * @version $Id: FieldGenOrMethodGen.java 410087 2006-05-29 12:12:19Z tcurdt $
- * @author M. Dahm
- */
-public abstract class FieldGenOrMethodGen extends AccessFlags implements
- NamedAndTyped, Cloneable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected String name;
- protected Type type;
- protected ConstantPoolGen cp;
- private List attribute_vec = new ArrayList();
-
- protected FieldGenOrMethodGen() {
- }
-
- @Override
- public void setType(Type type) {
- if (type.getType() == Constants.T_ADDRESS) {
- throw new IllegalArgumentException("Type can not be " + type);
- }
- this.type = type;
- }
-
- @Override
- public Type getType() {
- return type;
- }
-
- /**
- * @return name of method/field.
- */
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public void setName(String name) {
- this.name = name;
- }
-
- public ConstantPoolGen getConstantPool() {
- return cp;
- }
-
- public void setConstantPool(ConstantPoolGen cp) {
- this.cp = cp;
- }
-
- /**
- * Add an attribute to this method. Currently, the JVM knows about the
- * `Code', `ConstantValue', `Synthetic' and `Exceptions' attributes. Other
- * attributes will be ignored by the JVM but do no harm.
- *
- * @param a
- * attribute to be added
- */
- public void addAttribute(Attribute a) {
- attribute_vec.add(a);
- }
-
- /**
- * Remove an attribute.
- */
- public void removeAttribute(Attribute a) {
- attribute_vec.remove(a);
- }
-
- /**
- * Remove all attributes.
- */
- public void removeAttributes() {
- attribute_vec.clear();
- }
-
- /**
- * @return all attributes of this method.
- */
- public Attribute[] getAttributes() {
- Attribute[] attributes = new Attribute[attribute_vec.size()];
- attribute_vec.toArray(attributes);
- return attributes;
- }
-
- /**
- * @return signature of method/field.
- */
- public abstract String getSignature();
-
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- System.err.println(e);
- return null;
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/FieldInstruction.java b/src/org/apache/bcel/generic/FieldInstruction.java
deleted file mode 100644
index 936be24..0000000
--- a/src/org/apache/bcel/generic/FieldInstruction.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.classfile.ConstantPool;
-
-/**
- * Super class for the GET/PUTxxx family of instructions.
- *
- * @version $Id: FieldInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class FieldInstruction extends FieldOrMethod implements
- TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- FieldInstruction() {
- }
-
- /**
- * @param index
- * to constant pool
- */
- protected FieldInstruction(short opcode, int index) {
- super(opcode, index);
- }
-
- /**
- * @return mnemonic for instruction with symbolic references resolved
- */
- @Override
- public String toString(ConstantPool cp) {
- return org.apache.bcel.Constants.OPCODE_NAMES[opcode]
- + " "
- + cp.constantToString(index,
- org.apache.bcel.Constants.CONSTANT_Fieldref);
- }
-
- /**
- * @return size of field (1 or 2)
- */
- protected int getFieldSize(ConstantPoolGen cpg) {
- return getType(cpg).getSize();
- }
-
- /**
- * @return return type of referenced field
- */
- @Override
- public Type getType(ConstantPoolGen cpg) {
- return getFieldType(cpg);
- }
-
- /**
- * @return type of field
- */
- public Type getFieldType(ConstantPoolGen cpg) {
- return Type.getType(getSignature(cpg));
- }
-
- /**
- * @return name of referenced field.
- */
- public String getFieldName(ConstantPoolGen cpg) {
- return getName(cpg);
- }
-}
diff --git a/src/org/apache/bcel/generic/FieldObserver.java b/src/org/apache/bcel/generic/FieldObserver.java
deleted file mode 100644
index 9ec13b4..0000000
--- a/src/org/apache/bcel/generic/FieldObserver.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Imnplement this interface if you're interested in changes to a FieldGen
- * object and register yourself with addObserver().
- *
- * @version $Id: FieldObserver.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface FieldObserver {
-
- public void notify(FieldGen field);
-}
diff --git a/src/org/apache/bcel/generic/FieldOrMethod.java b/src/org/apache/bcel/generic/FieldOrMethod.java
deleted file mode 100644
index 9599221..0000000
--- a/src/org/apache/bcel/generic/FieldOrMethod.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.classfile.ConstantCP;
-import org.apache.bcel.classfile.ConstantNameAndType;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.classfile.ConstantUtf8;
-
-/**
- * Super class for InvokeInstruction and FieldInstruction, since they have some
- * methods in common!
- *
- * @version $Id: FieldOrMethod.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class FieldOrMethod extends CPInstruction implements LoadClass {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- FieldOrMethod() {
- }
-
- /**
- * @param index
- * to constant pool
- */
- protected FieldOrMethod(short opcode, int index) {
- super(opcode, index);
- }
-
- /**
- * @return signature of referenced method/field.
- */
- public String getSignature(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- ConstantCP cmr = (ConstantCP) cp.getConstant(index);
- ConstantNameAndType cnat = (ConstantNameAndType) cp.getConstant(cmr
- .getNameAndTypeIndex());
- return ((ConstantUtf8) cp.getConstant(cnat.getSignatureIndex()))
- .getBytes();
- }
-
- /**
- * @return name of referenced method/field.
- */
- public String getName(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- ConstantCP cmr = (ConstantCP) cp.getConstant(index);
- ConstantNameAndType cnat = (ConstantNameAndType) cp.getConstant(cmr
- .getNameAndTypeIndex());
- return ((ConstantUtf8) cp.getConstant(cnat.getNameIndex())).getBytes();
- }
-
- /**
- * @return name of the referenced class/interface
- */
- public String getClassName(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- ConstantCP cmr = (ConstantCP) cp.getConstant(index);
- String className = cp.getConstantString(cmr.getClassIndex(),
- org.apache.bcel.Constants.CONSTANT_Class);
- if (className.startsWith("[")) {
- // Turn array classes into java.lang.Object.
- return "java.lang.Object";
- }
- return className.replace('/', '.');
- }
-
- /**
- * @return type of the referenced class/interface
- * @deprecated If the instruction references an array class, the ObjectType
- * returned will be invalid. Use getReferenceType() instead.
- */
- @Deprecated
- public ObjectType getClassType(ConstantPoolGen cpg) {
- return new ObjectType(getClassName(cpg));
- }
-
- /**
- * Return the reference type representing the class, interface, or array
- * class referenced by the instruction.
- *
- * @param cpg
- * the ConstantPoolGen used to create the instruction
- * @return an ObjectType (if the referenced class type is a class or
- * interface), or an ArrayType (if the referenced class type is an
- * array class)
- */
- public ReferenceType getReferenceType(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- ConstantCP cmr = (ConstantCP) cp.getConstant(index);
- String className = cp.getConstantString(cmr.getClassIndex(),
- org.apache.bcel.Constants.CONSTANT_Class);
- if (className.startsWith("[")) {
- return (ArrayType) Type.getType(className);
- } else {
- className = className.replace('/', '.');
- return new ObjectType(className);
- }
- }
-
- /**
- * @return type of the referenced class/interface
- */
- @Override
- public ObjectType getLoadClassType(ConstantPoolGen cpg) {
- return getClassType(cpg);
- }
-}
diff --git a/src/org/apache/bcel/generic/GETFIELD.java b/src/org/apache/bcel/generic/GETFIELD.java
deleted file mode 100644
index d72d012..0000000
--- a/src/org/apache/bcel/generic/GETFIELD.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * GETFIELD - Fetch field from object
- *
- *
- *
- * @version $Id: GETFIELD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class GETFIELD extends FieldInstruction implements ExceptionThrower,
- StackConsumer, StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- GETFIELD() {
- }
-
- public GETFIELD(int index) {
- super(Constants.GETFIELD, index);
- }
-
- @Override
- public int produceStack(ConstantPoolGen cpg) {
- return getFieldSize(cpg);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[2 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length];
- System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION,
- 0, cs, 0,
- ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 1] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.NULL_POINTER_EXCEPTION;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitStackConsumer(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitLoadClass(this);
- v.visitCPInstruction(this);
- v.visitFieldOrMethod(this);
- v.visitFieldInstruction(this);
- v.visitGETFIELD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/GETSTATIC.java b/src/org/apache/bcel/generic/GETSTATIC.java
deleted file mode 100644
index 61c2975..0000000
--- a/src/org/apache/bcel/generic/GETSTATIC.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * GETSTATIC - Fetch static field from class
- *
- *
- *
- * @version $Id: GETSTATIC.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class GETSTATIC extends FieldInstruction implements PushInstruction,
- ExceptionThrower {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- GETSTATIC() {
- }
-
- public GETSTATIC(int index) {
- super(Constants.GETSTATIC, index);
- }
-
- @Override
- public int produceStack(ConstantPoolGen cpg) {
- return getFieldSize(cpg);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[1 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length];
- System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION,
- 0, cs, 0,
- ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitPushInstruction(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitLoadClass(this);
- v.visitCPInstruction(this);
- v.visitFieldOrMethod(this);
- v.visitFieldInstruction(this);
- v.visitGETSTATIC(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/GOTO.java b/src/org/apache/bcel/generic/GOTO.java
deleted file mode 100644
index 9dc4d7d..0000000
--- a/src/org/apache/bcel/generic/GOTO.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-/**
- * GOTO - Branch always (to relative offset, not absolute address)
- *
- * @version $Id: GOTO.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class GOTO extends GotoInstruction implements VariableLengthInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- GOTO() {
- }
-
- public GOTO(InstructionHandle target) {
- super(org.apache.bcel.Constants.GOTO, target);
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- index = getTargetOffset();
- if (opcode == org.apache.bcel.Constants.GOTO) {
- super.dump(out);
- } else { // GOTO_W
- index = getTargetOffset();
- out.writeByte(opcode);
- out.writeInt(index);
- }
- }
-
- /**
- * Called in pass 2 of InstructionList.setPositions() in order to update the
- * branch target, that may shift due to variable length instructions.
- */
- @Override
- protected int updatePosition(int offset, int max_offset) {
- int i = getTargetOffset(); // Depending on old position value
- position += offset; // Position may be shifted by preceding expansions
- if (Math.abs(i) >= (32767 - max_offset)) { // to large for short
- // (estimate)
- opcode = org.apache.bcel.Constants.GOTO_W;
- length = 5;
- return 2; // 5 - 3
- }
- return 0;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitVariableLengthInstruction(this);
- v.visitUnconditionalBranch(this);
- v.visitBranchInstruction(this);
- v.visitGotoInstruction(this);
- v.visitGOTO(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/GOTO_W.java b/src/org/apache/bcel/generic/GOTO_W.java
deleted file mode 100644
index 228d95e..0000000
--- a/src/org/apache/bcel/generic/GOTO_W.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * GOTO_W - Branch always (to relative offset, not absolute address)
- *
- * @version $Id: GOTO_W.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class GOTO_W extends GotoInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- GOTO_W() {
- }
-
- public GOTO_W(InstructionHandle target) {
- super(org.apache.bcel.Constants.GOTO_W, target);
- length = 5;
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- index = getTargetOffset();
- out.writeByte(opcode);
- out.writeInt(index);
- }
-
- /**
- * Read needed data (e.g. index) from file.
- */
- @Override
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- index = bytes.readInt();
- length = 5;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitUnconditionalBranch(this);
- v.visitBranchInstruction(this);
- v.visitGotoInstruction(this);
- v.visitGOTO_W(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/GotoInstruction.java b/src/org/apache/bcel/generic/GotoInstruction.java
deleted file mode 100644
index b0ceb55..0000000
--- a/src/org/apache/bcel/generic/GotoInstruction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Super class for GOTO
- *
- * @version $Id: GotoInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class GotoInstruction extends BranchInstruction implements
- UnconditionalBranch {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- GotoInstruction(short opcode, InstructionHandle target) {
- super(opcode, target);
- }
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- GotoInstruction() {
- }
-}
diff --git a/src/org/apache/bcel/generic/I2B.java b/src/org/apache/bcel/generic/I2B.java
deleted file mode 100644
index 1f609d4..0000000
--- a/src/org/apache/bcel/generic/I2B.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2B - Convert int to byte
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: I2B.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2B extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert int to byte
- */
- public I2B() {
- super(org.apache.bcel.Constants.I2B);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2B(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/I2C.java b/src/org/apache/bcel/generic/I2C.java
deleted file mode 100644
index 87c7ee2..0000000
--- a/src/org/apache/bcel/generic/I2C.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2C - Convert int to char
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: I2C.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2C extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert int to char
- */
- public I2C() {
- super(org.apache.bcel.Constants.I2C);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2C(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/I2D.java b/src/org/apache/bcel/generic/I2D.java
deleted file mode 100644
index 434685d..0000000
--- a/src/org/apache/bcel/generic/I2D.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2D - Convert int to double
- *
- *
- *
- * @version $Id: I2D.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2D extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert int to double
- */
- public I2D() {
- super(org.apache.bcel.Constants.I2D);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2D(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/I2F.java b/src/org/apache/bcel/generic/I2F.java
deleted file mode 100644
index e4ffa33..0000000
--- a/src/org/apache/bcel/generic/I2F.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2F - Convert int to float
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: I2F.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2F extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert int to float
- */
- public I2F() {
- super(org.apache.bcel.Constants.I2F);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2F(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/I2L.java b/src/org/apache/bcel/generic/I2L.java
deleted file mode 100644
index f63e22d..0000000
--- a/src/org/apache/bcel/generic/I2L.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2L - Convert int to long
- *
- *
- *
- * @version $Id: I2L.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2L extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Convert int to long
- */
- public I2L() {
- super(org.apache.bcel.Constants.I2L);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2L(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/I2S.java b/src/org/apache/bcel/generic/I2S.java
deleted file mode 100644
index 492d3ef..0000000
--- a/src/org/apache/bcel/generic/I2S.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * I2S - Convert int to short
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: I2S.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class I2S extends ConversionInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public I2S() {
- super(org.apache.bcel.Constants.I2S);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitConversionInstruction(this);
- v.visitI2S(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IADD.java b/src/org/apache/bcel/generic/IADD.java
deleted file mode 100644
index ad8bbcf..0000000
--- a/src/org/apache/bcel/generic/IADD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IADD - Add ints
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: IADD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IADD extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Add ints
- */
- public IADD() {
- super(org.apache.bcel.Constants.IADD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIADD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IALOAD.java b/src/org/apache/bcel/generic/IALOAD.java
deleted file mode 100644
index 1e43cf9..0000000
--- a/src/org/apache/bcel/generic/IALOAD.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IALOAD - Load int from array
- *
- *
- * Stack: ..., arrayref, index -> ..., value
- *
- *
- * @version $Id: IALOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IALOAD extends ArrayInstruction implements StackProducer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Load int from array
- */
- public IALOAD() {
- super(org.apache.bcel.Constants.IALOAD);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackProducer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitIALOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IAND.java b/src/org/apache/bcel/generic/IAND.java
deleted file mode 100644
index 85ab840..0000000
--- a/src/org/apache/bcel/generic/IAND.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IAND - Bitwise AND int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: IAND.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IAND extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IAND() {
- super(org.apache.bcel.Constants.IAND);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIAND(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IASTORE.java b/src/org/apache/bcel/generic/IASTORE.java
deleted file mode 100644
index 0a159db..0000000
--- a/src/org/apache/bcel/generic/IASTORE.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IASTORE - Store into int array
- *
- *
- * Stack: ..., arrayref, index, value -> ...
- *
- *
- * @version $Id: IASTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IASTORE extends ArrayInstruction implements StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Store into int array
- */
- public IASTORE() {
- super(org.apache.bcel.Constants.IASTORE);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitArrayInstruction(this);
- v.visitIASTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ICONST.java b/src/org/apache/bcel/generic/ICONST.java
deleted file mode 100644
index 6eab6d5..0000000
--- a/src/org/apache/bcel/generic/ICONST.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ICONST - Push value between -1, ..., 5, other values cause an exception
- *
- *
- * Stack: ... -> ...,
- *
- *
- * @version $Id: ICONST.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ICONST extends Instruction implements ConstantPushInstruction,
- TypedInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int value;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ICONST() {
- }
-
- public ICONST(int i) {
- super(org.apache.bcel.Constants.ICONST_0, (short) 1);
- if ((i >= -1) && (i <= 5)) {
- opcode = (short) (org.apache.bcel.Constants.ICONST_0 + i); // Even
- // works
- // for i
- // == -1
- } else {
- throw new ClassGenException(
- "ICONST can be used only for value between -1 and 5: " + i);
- }
- value = i;
- }
-
- @Override
- public Number getValue() {
- return new Integer(value);
- }
-
- /**
- * @return Type.INT
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.INT;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitPushInstruction(this);
- v.visitStackProducer(this);
- v.visitTypedInstruction(this);
- v.visitConstantPushInstruction(this);
- v.visitICONST(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IDIV.java b/src/org/apache/bcel/generic/IDIV.java
deleted file mode 100644
index db8cfeb..0000000
--- a/src/org/apache/bcel/generic/IDIV.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IDIV - Divide ints
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: IDIV.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IDIV extends ArithmeticInstruction implements ExceptionThrower {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Divide ints
- */
- public IDIV() {
- super(org.apache.bcel.Constants.IDIV);
- }
-
- /**
- * @return exceptions this instruction may cause
- */
- @Override
- public Class>[] getExceptions() {
- return new Class[] { org.apache.bcel.ExceptionConstants.ARITHMETIC_EXCEPTION };
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIDIV(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFEQ.java b/src/org/apache/bcel/generic/IFEQ.java
deleted file mode 100644
index 90f05a0..0000000
--- a/src/org/apache/bcel/generic/IFEQ.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFEQ - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFEQ.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFEQ extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFEQ() {
- }
-
- public IFEQ(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFEQ, target);
- }
-
- /**
- * @return negation of instruction, e.g. IFEQ.negate() == IFNE
- */
- @Override
- public IfInstruction negate() {
- return new IFNE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFEQ(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFGE.java b/src/org/apache/bcel/generic/IFGE.java
deleted file mode 100644
index 93a4314..0000000
--- a/src/org/apache/bcel/generic/IFGE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFGE - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFGE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFGE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFGE() {
- }
-
- public IFGE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFGE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFLT(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFGE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFGT.java b/src/org/apache/bcel/generic/IFGT.java
deleted file mode 100644
index 1b74414..0000000
--- a/src/org/apache/bcel/generic/IFGT.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFGT - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFGT.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFGT extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFGT() {
- }
-
- public IFGT(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFGT, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFLE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFGT(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFLE.java b/src/org/apache/bcel/generic/IFLE.java
deleted file mode 100644
index 61326d6..0000000
--- a/src/org/apache/bcel/generic/IFLE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFLE - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFLE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFLE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFLE() {
- }
-
- public IFLE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFLE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFGT(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFLE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFLT.java b/src/org/apache/bcel/generic/IFLT.java
deleted file mode 100644
index 62c323c..0000000
--- a/src/org/apache/bcel/generic/IFLT.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFLT - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFLT.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFLT extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFLT() {
- }
-
- public IFLT(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFLT, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFGE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFLT(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFNE.java b/src/org/apache/bcel/generic/IFNE.java
deleted file mode 100644
index b76f955..0000000
--- a/src/org/apache/bcel/generic/IFNE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFNE - Branch if int comparison with zero succeeds
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: IFNE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFNE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFNE() {
- }
-
- public IFNE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFNE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFEQ(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFNE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFNONNULL.java b/src/org/apache/bcel/generic/IFNONNULL.java
deleted file mode 100644
index 8513726..0000000
--- a/src/org/apache/bcel/generic/IFNONNULL.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFNONNULL - Branch if reference is not null
- *
- *
- * Stack: ..., reference -> ...
- *
- *
- * @version $Id: IFNONNULL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFNONNULL extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFNONNULL() {
- }
-
- public IFNONNULL(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFNONNULL, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFNULL(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFNONNULL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IFNULL.java b/src/org/apache/bcel/generic/IFNULL.java
deleted file mode 100644
index 4936f2c..0000000
--- a/src/org/apache/bcel/generic/IFNULL.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IFNULL - Branch if reference is not null
- *
- *
- * Stack: ..., reference -> ...
- *
- *
- * @version $Id: IFNULL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IFNULL extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IFNULL() {
- }
-
- public IFNULL(InstructionHandle target) {
- super(org.apache.bcel.Constants.IFNULL, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IFNONNULL(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIFNULL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ACMPEQ.java b/src/org/apache/bcel/generic/IF_ACMPEQ.java
deleted file mode 100644
index ac61b05..0000000
--- a/src/org/apache/bcel/generic/IF_ACMPEQ.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ACMPEQ - Branch if reference comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ACMPEQ.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ACMPEQ extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ACMPEQ() {
- }
-
- public IF_ACMPEQ(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ACMPEQ, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ACMPNE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ACMPEQ(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ACMPNE.java b/src/org/apache/bcel/generic/IF_ACMPNE.java
deleted file mode 100644
index ddb4a4d..0000000
--- a/src/org/apache/bcel/generic/IF_ACMPNE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ACMPNE - Branch if reference comparison doesn't succeed
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ACMPNE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ACMPNE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ACMPNE() {
- }
-
- public IF_ACMPNE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ACMPNE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ACMPEQ(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ACMPNE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPEQ.java b/src/org/apache/bcel/generic/IF_ICMPEQ.java
deleted file mode 100644
index d7dfb4d..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPEQ.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPEQ - Branch if int comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPEQ.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPEQ extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPEQ() {
- }
-
- public IF_ICMPEQ(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPEQ, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPNE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPEQ(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPGE.java b/src/org/apache/bcel/generic/IF_ICMPGE.java
deleted file mode 100644
index 7d30e01..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPGE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPGE - Branch if int comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPGE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPGE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPGE() {
- }
-
- public IF_ICMPGE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPGE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPLT(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPGE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPGT.java b/src/org/apache/bcel/generic/IF_ICMPGT.java
deleted file mode 100644
index cc907ad..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPGT.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPGT - Branch if int comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPGT.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPGT extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPGT() {
- }
-
- public IF_ICMPGT(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPGT, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPLE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPGT(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPLE.java b/src/org/apache/bcel/generic/IF_ICMPLE.java
deleted file mode 100644
index 0e30a5f..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPLE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPLE - Branch if int comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPLE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPLE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPLE() {
- }
-
- public IF_ICMPLE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPLE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPGT(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPLE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPLT.java b/src/org/apache/bcel/generic/IF_ICMPLT.java
deleted file mode 100644
index 9ebabcd..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPLT.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPLT - Branch if int comparison succeeds
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPLT.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPLT extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPLT() {
- }
-
- public IF_ICMPLT(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPLT, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPGE(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPLT(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IF_ICMPNE.java b/src/org/apache/bcel/generic/IF_ICMPNE.java
deleted file mode 100644
index ca67f6c..0000000
--- a/src/org/apache/bcel/generic/IF_ICMPNE.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IF_ICMPNE - Branch if int comparison doesn't succeed
- *
- *
- * Stack: ..., value1, value2 -> ...
- *
- *
- * @version $Id: IF_ICMPNE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IF_ICMPNE extends IfInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IF_ICMPNE() {
- }
-
- public IF_ICMPNE(InstructionHandle target) {
- super(org.apache.bcel.Constants.IF_ICMPNE, target);
- }
-
- /**
- * @return negation of instruction
- */
- @Override
- public IfInstruction negate() {
- return new IF_ICMPEQ(target);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitStackConsumer(this);
- v.visitBranchInstruction(this);
- v.visitIfInstruction(this);
- v.visitIF_ICMPNE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IINC.java b/src/org/apache/bcel/generic/IINC.java
deleted file mode 100644
index ecd01d4..0000000
--- a/src/org/apache/bcel/generic/IINC.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * IINC - Increment local variable by constant
- *
- * @version $Id: IINC.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IINC extends LocalVariableInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private boolean wide;
- private int c;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IINC() {
- }
-
- /**
- * @param n
- * index of local variable
- * @param c
- * increment factor
- */
- public IINC(int n, int c) {
- super(); // Default behaviour of LocalVariableInstruction causes error
- this.opcode = org.apache.bcel.Constants.IINC;
- this.length = (short) 3;
- setIndex(n); // May set wide as side effect
- setIncrement(c);
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- @Override
- public void dump(DataOutputStream out) throws IOException {
- if (wide) {
- out.writeByte(org.apache.bcel.Constants.WIDE);
- }
- out.writeByte(opcode);
- if (wide) {
- out.writeShort(n);
- out.writeShort(c);
- } else {
- out.writeByte(n);
- out.writeByte(c);
- }
- }
-
- private final void setWide() {
- wide = (n > org.apache.bcel.Constants.MAX_BYTE)
- || (Math.abs(c) > Byte.MAX_VALUE);
- if (wide) {
- length = 6; // wide byte included
- } else {
- length = 3;
- }
- }
-
- /**
- * Read needed data (e.g. index) from file.
- */
- @Override
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- this.wide = wide;
- if (wide) {
- length = 6;
- n = bytes.readUnsignedShort();
- c = bytes.readShort();
- } else {
- length = 3;
- n = bytes.readUnsignedByte();
- c = bytes.readByte();
- }
- }
-
- /**
- * @return mnemonic for instruction
- */
- @Override
- public String toString(boolean verbose) {
- return super.toString(verbose) + " " + c;
- }
-
- /**
- * Set index of local variable.
- */
- @Override
- public final void setIndex(int n) {
- if (n < 0) {
- throw new ClassGenException("Negative index value: " + n);
- }
- this.n = n;
- setWide();
- }
-
- /**
- * @return increment factor
- */
- public final int getIncrement() {
- return c;
- }
-
- /**
- * Set increment factor.
- */
- public final void setIncrement(int c) {
- this.c = c;
- setWide();
- }
-
- /**
- * @return int type
- */
- @Override
- public Type getType(ConstantPoolGen cp) {
- return Type.INT;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitLocalVariableInstruction(this);
- v.visitIINC(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ILOAD.java b/src/org/apache/bcel/generic/ILOAD.java
deleted file mode 100644
index bdcacca..0000000
--- a/src/org/apache/bcel/generic/ILOAD.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ILOAD - Load int from local variable onto stack
- *
- *
- * Stack: ... -> ..., result
- *
- *
- * @version $Id: ILOAD.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ILOAD extends LoadInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ILOAD() {
- super(org.apache.bcel.Constants.ILOAD,
- org.apache.bcel.Constants.ILOAD_0);
- }
-
- /**
- * Load int from local variable
- *
- * @param n
- * index of local variable
- */
- public ILOAD(int n) {
- super(org.apache.bcel.Constants.ILOAD,
- org.apache.bcel.Constants.ILOAD_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitILOAD(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IMPDEP1.java b/src/org/apache/bcel/generic/IMPDEP1.java
deleted file mode 100644
index cfc560b..0000000
--- a/src/org/apache/bcel/generic/IMPDEP1.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IMPDEP1 - Implementation dependent
- *
- * @version $Id: IMPDEP1.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IMPDEP1 extends Instruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IMPDEP1() {
- super(org.apache.bcel.Constants.IMPDEP1, (short) 1);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitIMPDEP1(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IMPDEP2.java b/src/org/apache/bcel/generic/IMPDEP2.java
deleted file mode 100644
index cd57b29..0000000
--- a/src/org/apache/bcel/generic/IMPDEP2.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IMPDEP2 - Implementation dependent
- *
- * @version $Id: IMPDEP2.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IMPDEP2 extends Instruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IMPDEP2() {
- super(org.apache.bcel.Constants.IMPDEP2, (short) 1);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitIMPDEP2(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IMUL.java b/src/org/apache/bcel/generic/IMUL.java
deleted file mode 100644
index b944b5b..0000000
--- a/src/org/apache/bcel/generic/IMUL.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IMUL - Multiply ints
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: IMUL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IMUL extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Multiply ints
- */
- public IMUL() {
- super(org.apache.bcel.Constants.IMUL);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIMUL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/INEG.java b/src/org/apache/bcel/generic/INEG.java
deleted file mode 100644
index db25323..0000000
--- a/src/org/apache/bcel/generic/INEG.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * INEG - Negate int
- *
- *
- * Stack: ..., value -> ..., result
- *
- *
- * @version $Id: INEG.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class INEG extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public INEG() {
- super(org.apache.bcel.Constants.INEG);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitINEG(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/INSTANCEOF.java b/src/org/apache/bcel/generic/INSTANCEOF.java
deleted file mode 100644
index db79830..0000000
--- a/src/org/apache/bcel/generic/INSTANCEOF.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * INSTANCEOF - Determine if object is of given type
- *
- *
- * Stack: ..., objectref -> ..., result
- *
- *
- * @version $Id: INSTANCEOF.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class INSTANCEOF extends CPInstruction implements LoadClass,
- ExceptionThrower, StackProducer, StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- INSTANCEOF() {
- }
-
- public INSTANCEOF(int index) {
- super(org.apache.bcel.Constants.INSTANCEOF, index);
- }
-
- @Override
- public Class>[] getExceptions() {
- return org.apache.bcel.ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION;
- }
-
- @Override
- public ObjectType getLoadClassType(ConstantPoolGen cpg) {
- Type t = getType(cpg);
- if (t instanceof ArrayType) {
- t = ((ArrayType) t).getBasicType();
- }
- return (t instanceof ObjectType) ? (ObjectType) t : null;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitLoadClass(this);
- v.visitExceptionThrower(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitTypedInstruction(this);
- v.visitCPInstruction(this);
- v.visitINSTANCEOF(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/INVOKEINTERFACE.java b/src/org/apache/bcel/generic/INVOKEINTERFACE.java
deleted file mode 100644
index 4af8f41..0000000
--- a/src/org/apache/bcel/generic/INVOKEINTERFACE.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import org.apache.bcel.Constants;
-import org.apache.bcel.ExceptionConstants;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * INVOKEINTERFACE - Invoke interface method
- *
- *
- *
- * @version $Id: INVOKESPECIAL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class INVOKESPECIAL extends InvokeInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- INVOKESPECIAL() {
- }
-
- public INVOKESPECIAL(int index) {
- super(Constants.INVOKESPECIAL, index);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[4 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length];
- System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION,
- 0, cs, 0,
- ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 3] = ExceptionConstants.UNSATISFIED_LINK_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 2] = ExceptionConstants.ABSTRACT_METHOD_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 1] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.NULL_POINTER_EXCEPTION;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitStackProducer(this);
- v.visitLoadClass(this);
- v.visitCPInstruction(this);
- v.visitFieldOrMethod(this);
- v.visitInvokeInstruction(this);
- v.visitINVOKESPECIAL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/INVOKESTATIC.java b/src/org/apache/bcel/generic/INVOKESTATIC.java
deleted file mode 100644
index 72409d4..0000000
--- a/src/org/apache/bcel/generic/INVOKESTATIC.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * INVOKESTATIC - Invoke a class (static) method
- *
- *
- * Stack: ..., [arg1, [arg2 ...]] -> ...
- *
- *
- * @version $Id: INVOKESTATIC.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class INVOKESTATIC extends InvokeInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- INVOKESTATIC() {
- }
-
- public INVOKESTATIC(int index) {
- super(Constants.INVOKESTATIC, index);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[2 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length];
- System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION,
- 0, cs, 0,
- ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.UNSATISFIED_LINK_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 1] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitStackProducer(this);
- v.visitLoadClass(this);
- v.visitCPInstruction(this);
- v.visitFieldOrMethod(this);
- v.visitInvokeInstruction(this);
- v.visitINVOKESTATIC(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/INVOKEVIRTUAL.java b/src/org/apache/bcel/generic/INVOKEVIRTUAL.java
deleted file mode 100644
index fd4fbee..0000000
--- a/src/org/apache/bcel/generic/INVOKEVIRTUAL.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-import org.apache.bcel.ExceptionConstants;
-
-/**
- * INVOKEVIRTUAL - Invoke instance method; dispatch based on class
- *
- *
- *
- * @version $Id: INVOKEVIRTUAL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class INVOKEVIRTUAL extends InvokeInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- INVOKEVIRTUAL() {
- }
-
- public INVOKEVIRTUAL(int index) {
- super(Constants.INVOKEVIRTUAL, index);
- }
-
- @Override
- public Class>[] getExceptions() {
- Class>[] cs = new Class[4 + ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length];
- System.arraycopy(ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION,
- 0, cs, 0,
- ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length);
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 3] = ExceptionConstants.UNSATISFIED_LINK_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 2] = ExceptionConstants.ABSTRACT_METHOD_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length + 1] = ExceptionConstants.INCOMPATIBLE_CLASS_CHANGE_ERROR;
- cs[ExceptionConstants.EXCS_FIELD_AND_METHOD_RESOLUTION.length] = ExceptionConstants.NULL_POINTER_EXCEPTION;
- return cs;
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitStackProducer(this);
- v.visitLoadClass(this);
- v.visitCPInstruction(this);
- v.visitFieldOrMethod(this);
- v.visitInvokeInstruction(this);
- v.visitINVOKEVIRTUAL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IOR.java b/src/org/apache/bcel/generic/IOR.java
deleted file mode 100644
index 21547eb..0000000
--- a/src/org/apache/bcel/generic/IOR.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IOR - Bitwise OR int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: IOR.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IOR extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IOR() {
- super(org.apache.bcel.Constants.IOR);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIOR(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IREM.java b/src/org/apache/bcel/generic/IREM.java
deleted file mode 100644
index 4977625..0000000
--- a/src/org/apache/bcel/generic/IREM.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IREM - Remainder of int
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: IREM.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IREM extends ArithmeticInstruction implements ExceptionThrower {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Remainder of ints
- */
- public IREM() {
- super(org.apache.bcel.Constants.IREM);
- }
-
- /**
- * @return exceptions this instruction may cause
- */
- @Override
- public Class>[] getExceptions() {
- return new Class[] { org.apache.bcel.ExceptionConstants.ARITHMETIC_EXCEPTION };
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIREM(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IRETURN.java b/src/org/apache/bcel/generic/IRETURN.java
deleted file mode 100644
index 767b4be..0000000
--- a/src/org/apache/bcel/generic/IRETURN.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IRETURN - Return int from method
- *
- *
- * Stack: ..., value -> <empty>
- *
- *
- * @version $Id: IRETURN.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IRETURN extends ReturnInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Return int from method
- */
- public IRETURN() {
- super(org.apache.bcel.Constants.IRETURN);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitExceptionThrower(this);
- v.visitTypedInstruction(this);
- v.visitStackConsumer(this);
- v.visitReturnInstruction(this);
- v.visitIRETURN(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ISHL.java b/src/org/apache/bcel/generic/ISHL.java
deleted file mode 100644
index 05244cf..0000000
--- a/src/org/apache/bcel/generic/ISHL.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ISHL - Arithmetic shift left int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: ISHL.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ISHL extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public ISHL() {
- super(org.apache.bcel.Constants.ISHL);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitISHL(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ISHR.java b/src/org/apache/bcel/generic/ISHR.java
deleted file mode 100644
index 03f3178..0000000
--- a/src/org/apache/bcel/generic/ISHR.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ISHR - Arithmetic shift right int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: ISHR.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ISHR extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public ISHR() {
- super(org.apache.bcel.Constants.ISHR);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitISHR(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ISTORE.java b/src/org/apache/bcel/generic/ISTORE.java
deleted file mode 100644
index 3f80b96..0000000
--- a/src/org/apache/bcel/generic/ISTORE.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ISTORE - Store int from stack into local variable
- *
- *
- * Stack: ..., value -> ...
- *
- *
- * @version $Id: ISTORE.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ISTORE extends StoreInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- ISTORE() {
- super(org.apache.bcel.Constants.ISTORE,
- org.apache.bcel.Constants.ISTORE_0);
- }
-
- /**
- * Store int into local variable
- *
- * @param n
- * index of local variable
- */
- public ISTORE(int n) {
- super(org.apache.bcel.Constants.ISTORE,
- org.apache.bcel.Constants.ISTORE_0, n);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- super.accept(v);
- v.visitISTORE(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/ISUB.java b/src/org/apache/bcel/generic/ISUB.java
deleted file mode 100644
index a303f30..0000000
--- a/src/org/apache/bcel/generic/ISUB.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * ISUB - Substract ints
- *
- *
- * Stack: ..., value1, value2 -> result
- *
- *
- * @version $Id: ISUB.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class ISUB extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Substract ints
- */
- public ISUB() {
- super(org.apache.bcel.Constants.ISUB);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitISUB(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IUSHR.java b/src/org/apache/bcel/generic/IUSHR.java
deleted file mode 100644
index 36bc1ec..0000000
--- a/src/org/apache/bcel/generic/IUSHR.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IUSHR - Logical shift right int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: IUSHR.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IUSHR extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IUSHR() {
- super(org.apache.bcel.Constants.IUSHR);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIUSHR(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IXOR.java b/src/org/apache/bcel/generic/IXOR.java
deleted file mode 100644
index 9338502..0000000
--- a/src/org/apache/bcel/generic/IXOR.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * IXOR - Bitwise XOR int
- *
- *
- * Stack: ..., value1, value2 -> ..., result
- *
- *
- * @version $Id: IXOR.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public class IXOR extends ArithmeticInstruction {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public IXOR() {
- super(org.apache.bcel.Constants.IXOR);
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- @Override
- public void accept(Visitor v) {
- v.visitTypedInstruction(this);
- v.visitStackProducer(this);
- v.visitStackConsumer(this);
- v.visitArithmeticInstruction(this);
- v.visitIXOR(this);
- }
-}
diff --git a/src/org/apache/bcel/generic/IfInstruction.java b/src/org/apache/bcel/generic/IfInstruction.java
deleted file mode 100644
index c443b9c..0000000
--- a/src/org/apache/bcel/generic/IfInstruction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Super class for the IFxxx family of instructions.
- *
- * @version $Id: IfInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class IfInstruction extends BranchInstruction implements
- StackConsumer {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- IfInstruction() {
- }
-
- /**
- * @param opcode
- * opcode of instruction
- * @param target
- * Target instruction to branch to
- */
- protected IfInstruction(short opcode, InstructionHandle target) {
- super(opcode, target);
- }
-
- /**
- * @return negation of instruction, e.g. IFEQ.negate() == IFNE
- */
- public abstract IfInstruction negate();
-}
diff --git a/src/org/apache/bcel/generic/IndexedInstruction.java b/src/org/apache/bcel/generic/IndexedInstruction.java
deleted file mode 100644
index 25bf990..0000000
--- a/src/org/apache/bcel/generic/IndexedInstruction.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Denote entity that refers to an index, e.g. local variable instructions, RET,
- * CPInstruction, etc.
- *
- * @version $Id: IndexedInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface IndexedInstruction {
-
- public int getIndex();
-
- public void setIndex(int index);
-}
diff --git a/src/org/apache/bcel/generic/Instruction.java b/src/org/apache/bcel/generic/Instruction.java
deleted file mode 100644
index 0704729..0000000
--- a/src/org/apache/bcel/generic/Instruction.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.Locale;
-import org.apache.bcel.Constants;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.util.ByteSequence;
-
-/**
- * Abstract super class for all Java byte codes.
- *
- * @version $Id: Instruction.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public abstract class Instruction implements Cloneable, Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected short length = 1; // Length of instruction in bytes
- protected short opcode = -1; // Opcode number
- private static InstructionComparator cmp = InstructionComparator.DEFAULT;
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- Instruction() {
- }
-
- public Instruction(short opcode, short length) {
- this.length = length;
- this.opcode = opcode;
- }
-
- /**
- * Dump instruction as byte code to stream out.
- *
- * @param out
- * Output stream
- */
- public void dump(DataOutputStream out) throws IOException {
- out.writeByte(opcode); // Common for all instructions
- }
-
- /**
- * @return name of instruction, i.e., opcode name
- */
- public String getName() {
- return Constants.OPCODE_NAMES[opcode];
- }
-
- /**
- * Long output format:
- *
- * <name of opcode> "["<opcode number>"]" "("<length of
- * instruction>")"
- *
- * @param verbose
- * long/short format switch
- * @return mnemonic for instruction
- */
- public String toString(boolean verbose) {
- if (verbose) {
- return getName() + "[" + opcode + "](" + length + ")";
- } else {
- return getName();
- }
- }
-
- /**
- * @return mnemonic for instruction in verbose format
- */
- @Override
- public String toString() {
- return toString(true);
- }
-
- /**
- * @return mnemonic for instruction with sumbolic references resolved
- */
- public String toString(ConstantPool cp) {
- return toString(false);
- }
-
- /**
- * Use with caution, since `BranchInstruction's have a `target' reference
- * which is not copied correctly (only basic types are). This also applies
- * for `Select' instructions with their multiple branch targets.
- *
- * @see BranchInstruction
- * @return (shallow) copy of an instruction
- */
- public Instruction copy() {
- Instruction i = null;
- // "Constant" instruction, no need to duplicate
- if (InstructionConstants.INSTRUCTIONS[this.getOpcode()] != null) {
- i = this;
- } else {
- try {
- i = (Instruction) clone();
- } catch (CloneNotSupportedException e) {
- System.err.println(e);
- }
- }
- return i;
- }
-
- /**
- * Read needed data (e.g. index) from file.
- *
- * @param bytes
- * byte sequence to read from
- * @param wide
- * "wide" instruction flag
- */
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException {
- }
-
- /**
- * Read an instruction from (byte code) input stream and return the
- * appropiate object.
- *
- * @param bytes
- * input stream bytes
- * @return instruction object being read
- */
- public static final Instruction readInstruction(ByteSequence bytes)
- throws IOException {
- boolean wide = false;
- short opcode = (short) bytes.readUnsignedByte();
- Instruction obj = null;
- if (opcode == Constants.WIDE) { // Read next opcode after wide byte
- wide = true;
- opcode = (short) bytes.readUnsignedByte();
- }
- if (InstructionConstants.INSTRUCTIONS[opcode] != null) {
- return InstructionConstants.INSTRUCTIONS[opcode]; // Used predefined
- // immutable
- // object, if
- // available
- }
- /*
- * Find appropiate class, instantiate an (empty) instruction object and
- * initialize it by hand.
- */
- Class> clazz;
- try {
- clazz = Class.forName(className(opcode));
- } catch (ClassNotFoundException cnfe) {
- // If a class by that name does not exist, the opcode is illegal.
- // Note that IMPDEP1, IMPDEP2, BREAKPOINT are also illegal in a
- // sense.
- throw new ClassGenException("Illegal opcode detected.");
- }
- try {
- obj = (Instruction) clazz.newInstance();
- if (wide
- && !((obj instanceof LocalVariableInstruction)
- || (obj instanceof IINC) || (obj instanceof RET))) {
- throw new Exception("Illegal opcode after wide: " + opcode);
- }
- obj.setOpcode(opcode);
- obj.initFromFile(bytes, wide); // Do further initializations, if any
- // Byte code offset set in InstructionList
- } catch (Exception e) {
- throw new ClassGenException(e.toString());
- }
- return obj;
- }
-
- private static final String className(short opcode) {
- String name = Constants.OPCODE_NAMES[opcode]
- .toUpperCase(Locale.ENGLISH);
- /*
- * ICONST_0, etc. will be shortened to ICONST, etc., since ICONST_0 and
- * the like are not implemented (directly).
- */
- try {
- int len = name.length();
- char ch1 = name.charAt(len - 2), ch2 = name.charAt(len - 1);
- if ((ch1 == '_') && (ch2 >= '0') && (ch2 <= '5')) {
- name = name.substring(0, len - 2);
- }
- if (name.equals("ICONST_M1")) {
- name = "ICONST";
- }
- } catch (StringIndexOutOfBoundsException e) {
- System.err.println(e);
- }
- return "org.apache.bcel.generic." + name;
- }
-
- /**
- * This method also gives right results for instructions whose effect on the
- * stack depends on the constant pool entry they reference.
- *
- * @return Number of words consumed from stack by this instruction, or
- * Constants.UNPREDICTABLE, if this can not be computed statically
- */
- public int consumeStack(ConstantPoolGen cpg) {
- return Constants.CONSUME_STACK[opcode];
- }
-
- /**
- * This method also gives right results for instructions whose effect on the
- * stack depends on the constant pool entry they reference.
- *
- * @return Number of words produced onto stack by this instruction, or
- * Constants.UNPREDICTABLE, if this can not be computed statically
- */
- public int produceStack(ConstantPoolGen cpg) {
- return Constants.PRODUCE_STACK[opcode];
- }
-
- /**
- * @return this instructions opcode
- */
- public short getOpcode() {
- return opcode;
- }
-
- /**
- * @return length (in bytes) of instruction
- */
- public int getLength() {
- return length;
- }
-
- /**
- * Needed in readInstruction.
- */
- private void setOpcode(short opcode) {
- this.opcode = opcode;
- }
-
- /**
- * Some instructions may be reused, so don't do anything by default.
- */
- void dispose() {
- }
-
- /**
- * Call corresponding visitor method(s). The order is: Call visitor methods
- * of implemented interfaces first, then call methods according to the class
- * hierarchy in descending order, i.e., the most specific visitXXX() call
- * comes last.
- *
- * @param v
- * Visitor object
- */
- public abstract void accept(Visitor v);
-
- /**
- * Get Comparator object used in the equals() method to determine equality
- * of instructions.
- *
- * @return currently used comparator for equals()
- */
- public static InstructionComparator getComparator() {
- return cmp;
- }
-
- /**
- * Set comparator to be used for equals().
- */
- public static void setComparator(InstructionComparator c) {
- cmp = c;
- }
-
- /**
- * Check for equality, delegated to comparator
- *
- * @return true if that is an Instruction and has the same opcode
- */
- @Override
- public boolean equals(Object that) {
- return (that instanceof Instruction) ? cmp.equals(this,
- (Instruction) that) : false;
- }
-}
diff --git a/src/org/apache/bcel/generic/InstructionComparator.java b/src/org/apache/bcel/generic/InstructionComparator.java
deleted file mode 100644
index 7717631..0000000
--- a/src/org/apache/bcel/generic/InstructionComparator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-/**
- * Equality of instructions isn't clearly to be defined. You might wish, for
- * example, to compare whether instructions have the same meaning. E.g., whether
- * two INVOKEVIRTUALs describe the same call.
- * The DEFAULT comparator however, considers two instructions to be equal if
- * they have same opcode and point to the same indexes (if any) in the constant
- * pool or the same local variable index. Branch instructions must have the same
- * target.
- *
- * @see Instruction
- * @version $Id: InstructionComparator.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface InstructionComparator {
-
- public static final InstructionComparator DEFAULT = new InstructionComparator() {
-
- @Override
- public boolean equals(Instruction i1, Instruction i2) {
- if (i1.opcode == i2.opcode) {
- if (i1 instanceof Select) {
- InstructionHandle[] t1 = ((Select) i1).getTargets();
- InstructionHandle[] t2 = ((Select) i2).getTargets();
- if (t1.length == t2.length) {
- for (int i = 0; i < t1.length; i++) {
- if (t1[i] != t2[i]) {
- return false;
- }
- }
- return true;
- }
- } else if (i1 instanceof BranchInstruction) {
- return ((BranchInstruction) i1).target == ((BranchInstruction) i2).target;
- } else if (i1 instanceof ConstantPushInstruction) {
- return ((ConstantPushInstruction) i1).getValue().equals(
- ((ConstantPushInstruction) i2).getValue());
- } else if (i1 instanceof IndexedInstruction) {
- return ((IndexedInstruction) i1).getIndex() == ((IndexedInstruction) i2)
- .getIndex();
- } else if (i1 instanceof NEWARRAY) {
- return ((NEWARRAY) i1).getTypecode() == ((NEWARRAY) i2)
- .getTypecode();
- } else {
- return true;
- }
- }
- return false;
- }
- };
-
- public boolean equals(Instruction i1, Instruction i2);
-}
diff --git a/src/org/apache/bcel/generic/InstructionConstants.java b/src/org/apache/bcel/generic/InstructionConstants.java
deleted file mode 100644
index 4d78841..0000000
--- a/src/org/apache/bcel/generic/InstructionConstants.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * This interface contains shareable instruction objects.
- *
- * In order to save memory you can use some instructions multiply, since they
- * have an immutable state and are directly derived from Instruction. I.e. they
- * have no instance fields that could be changed. Since some of these
- * instructions like ICONST_0 occur very frequently this can save a lot of time
- * and space. This feature is an adaptation of the FlyWeight design pattern, we
- * just use an array instead of a factory.
- *
- * The Instructions can also accessed directly under their names, so it's
- * possible to write il.append(Instruction.ICONST_0);
- *
- * @version $Id: InstructionConstants.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- */
-public interface InstructionConstants {
-
- /**
- * Predefined instruction objects
- */
- public static final Instruction NOP = new NOP();
- public static final Instruction ACONST_NULL = new ACONST_NULL();
- public static final Instruction ICONST_M1 = new ICONST(-1);
- public static final Instruction ICONST_0 = new ICONST(0);
- public static final Instruction ICONST_1 = new ICONST(1);
- public static final Instruction ICONST_2 = new ICONST(2);
- public static final Instruction ICONST_3 = new ICONST(3);
- public static final Instruction ICONST_4 = new ICONST(4);
- public static final Instruction ICONST_5 = new ICONST(5);
- public static final Instruction LCONST_0 = new LCONST(0);
- public static final Instruction LCONST_1 = new LCONST(1);
- public static final Instruction FCONST_0 = new FCONST(0);
- public static final Instruction FCONST_1 = new FCONST(1);
- public static final Instruction FCONST_2 = new FCONST(2);
- public static final Instruction DCONST_0 = new DCONST(0);
- public static final Instruction DCONST_1 = new DCONST(1);
- public static final ArrayInstruction IALOAD = new IALOAD();
- public static final ArrayInstruction LALOAD = new LALOAD();
- public static final ArrayInstruction FALOAD = new FALOAD();
- public static final ArrayInstruction DALOAD = new DALOAD();
- public static final ArrayInstruction AALOAD = new AALOAD();
- public static final ArrayInstruction BALOAD = new BALOAD();
- public static final ArrayInstruction CALOAD = new CALOAD();
- public static final ArrayInstruction SALOAD = new SALOAD();
- public static final ArrayInstruction IASTORE = new IASTORE();
- public static final ArrayInstruction LASTORE = new LASTORE();
- public static final ArrayInstruction FASTORE = new FASTORE();
- public static final ArrayInstruction DASTORE = new DASTORE();
- public static final ArrayInstruction AASTORE = new AASTORE();
- public static final ArrayInstruction BASTORE = new BASTORE();
- public static final ArrayInstruction CASTORE = new CASTORE();
- public static final ArrayInstruction SASTORE = new SASTORE();
- public static final StackInstruction POP = new POP();
- public static final StackInstruction POP2 = new POP2();
- public static final StackInstruction DUP = new DUP();
- public static final StackInstruction DUP_X1 = new DUP_X1();
- public static final StackInstruction DUP_X2 = new DUP_X2();
- public static final StackInstruction DUP2 = new DUP2();
- public static final StackInstruction DUP2_X1 = new DUP2_X1();
- public static final StackInstruction DUP2_X2 = new DUP2_X2();
- public static final StackInstruction SWAP = new SWAP();
- public static final ArithmeticInstruction IADD = new IADD();
- public static final ArithmeticInstruction LADD = new LADD();
- public static final ArithmeticInstruction FADD = new FADD();
- public static final ArithmeticInstruction DADD = new DADD();
- public static final ArithmeticInstruction ISUB = new ISUB();
- public static final ArithmeticInstruction LSUB = new LSUB();
- public static final ArithmeticInstruction FSUB = new FSUB();
- public static final ArithmeticInstruction DSUB = new DSUB();
- public static final ArithmeticInstruction IMUL = new IMUL();
- public static final ArithmeticInstruction LMUL = new LMUL();
- public static final ArithmeticInstruction FMUL = new FMUL();
- public static final ArithmeticInstruction DMUL = new DMUL();
- public static final ArithmeticInstruction IDIV = new IDIV();
- public static final ArithmeticInstruction LDIV = new LDIV();
- public static final ArithmeticInstruction FDIV = new FDIV();
- public static final ArithmeticInstruction DDIV = new DDIV();
- public static final ArithmeticInstruction IREM = new IREM();
- public static final ArithmeticInstruction LREM = new LREM();
- public static final ArithmeticInstruction FREM = new FREM();
- public static final ArithmeticInstruction DREM = new DREM();
- public static final ArithmeticInstruction INEG = new INEG();
- public static final ArithmeticInstruction LNEG = new LNEG();
- public static final ArithmeticInstruction FNEG = new FNEG();
- public static final ArithmeticInstruction DNEG = new DNEG();
- public static final ArithmeticInstruction ISHL = new ISHL();
- public static final ArithmeticInstruction LSHL = new LSHL();
- public static final ArithmeticInstruction ISHR = new ISHR();
- public static final ArithmeticInstruction LSHR = new LSHR();
- public static final ArithmeticInstruction IUSHR = new IUSHR();
- public static final ArithmeticInstruction LUSHR = new LUSHR();
- public static final ArithmeticInstruction IAND = new IAND();
- public static final ArithmeticInstruction LAND = new LAND();
- public static final ArithmeticInstruction IOR = new IOR();
- public static final ArithmeticInstruction LOR = new LOR();
- public static final ArithmeticInstruction IXOR = new IXOR();
- public static final ArithmeticInstruction LXOR = new LXOR();
- public static final ConversionInstruction I2L = new I2L();
- public static final ConversionInstruction I2F = new I2F();
- public static final ConversionInstruction I2D = new I2D();
- public static final ConversionInstruction L2I = new L2I();
- public static final ConversionInstruction L2F = new L2F();
- public static final ConversionInstruction L2D = new L2D();
- public static final ConversionInstruction F2I = new F2I();
- public static final ConversionInstruction F2L = new F2L();
- public static final ConversionInstruction F2D = new F2D();
- public static final ConversionInstruction D2I = new D2I();
- public static final ConversionInstruction D2L = new D2L();
- public static final ConversionInstruction D2F = new D2F();
- public static final ConversionInstruction I2B = new I2B();
- public static final ConversionInstruction I2C = new I2C();
- public static final ConversionInstruction I2S = new I2S();
- public static final Instruction LCMP = new LCMP();
- public static final Instruction FCMPL = new FCMPL();
- public static final Instruction FCMPG = new FCMPG();
- public static final Instruction DCMPL = new DCMPL();
- public static final Instruction DCMPG = new DCMPG();
- public static final ReturnInstruction IRETURN = new IRETURN();
- public static final ReturnInstruction LRETURN = new LRETURN();
- public static final ReturnInstruction FRETURN = new FRETURN();
- public static final ReturnInstruction DRETURN = new DRETURN();
- public static final ReturnInstruction ARETURN = new ARETURN();
- public static final ReturnInstruction RETURN = new RETURN();
- public static final Instruction ARRAYLENGTH = new ARRAYLENGTH();
- public static final Instruction ATHROW = new ATHROW();
- public static final Instruction MONITORENTER = new MONITORENTER();
- public static final Instruction MONITOREXIT = new MONITOREXIT();
- /**
- * You can use these constants in multiple places safely, if you can
- * guarantee that you will never alter their internal values, e.g. call
- * setIndex().
- */
- public static final LocalVariableInstruction THIS = new ALOAD(0);
- public static final LocalVariableInstruction ALOAD_0 = THIS;
- public static final LocalVariableInstruction ALOAD_1 = new ALOAD(1);
- public static final LocalVariableInstruction ALOAD_2 = new ALOAD(2);
- public static final LocalVariableInstruction ILOAD_0 = new ILOAD(0);
- public static final LocalVariableInstruction ILOAD_1 = new ILOAD(1);
- public static final LocalVariableInstruction ILOAD_2 = new ILOAD(2);
- public static final LocalVariableInstruction ASTORE_0 = new ASTORE(0);
- public static final LocalVariableInstruction ASTORE_1 = new ASTORE(1);
- public static final LocalVariableInstruction ASTORE_2 = new ASTORE(2);
- public static final LocalVariableInstruction ISTORE_0 = new ISTORE(0);
- public static final LocalVariableInstruction ISTORE_1 = new ISTORE(1);
- public static final LocalVariableInstruction ISTORE_2 = new ISTORE(2);
- /**
- * Get object via its opcode, for immutable instructions like branch
- * instructions entries are set to null.
- */
- public static final Instruction[] INSTRUCTIONS = new Instruction[256];
- /**
- * Interfaces may have no static initializers, so we simulate this with an
- * inner class.
- */
- static final Clinit bla = new Clinit();
-
- static class Clinit {
-
- Clinit() {
- INSTRUCTIONS[Constants.NOP] = NOP;
- INSTRUCTIONS[Constants.ACONST_NULL] = ACONST_NULL;
- INSTRUCTIONS[Constants.ICONST_M1] = ICONST_M1;
- INSTRUCTIONS[Constants.ICONST_0] = ICONST_0;
- INSTRUCTIONS[Constants.ICONST_1] = ICONST_1;
- INSTRUCTIONS[Constants.ICONST_2] = ICONST_2;
- INSTRUCTIONS[Constants.ICONST_3] = ICONST_3;
- INSTRUCTIONS[Constants.ICONST_4] = ICONST_4;
- INSTRUCTIONS[Constants.ICONST_5] = ICONST_5;
- INSTRUCTIONS[Constants.LCONST_0] = LCONST_0;
- INSTRUCTIONS[Constants.LCONST_1] = LCONST_1;
- INSTRUCTIONS[Constants.FCONST_0] = FCONST_0;
- INSTRUCTIONS[Constants.FCONST_1] = FCONST_1;
- INSTRUCTIONS[Constants.FCONST_2] = FCONST_2;
- INSTRUCTIONS[Constants.DCONST_0] = DCONST_0;
- INSTRUCTIONS[Constants.DCONST_1] = DCONST_1;
- INSTRUCTIONS[Constants.IALOAD] = IALOAD;
- INSTRUCTIONS[Constants.LALOAD] = LALOAD;
- INSTRUCTIONS[Constants.FALOAD] = FALOAD;
- INSTRUCTIONS[Constants.DALOAD] = DALOAD;
- INSTRUCTIONS[Constants.AALOAD] = AALOAD;
- INSTRUCTIONS[Constants.BALOAD] = BALOAD;
- INSTRUCTIONS[Constants.CALOAD] = CALOAD;
- INSTRUCTIONS[Constants.SALOAD] = SALOAD;
- INSTRUCTIONS[Constants.IASTORE] = IASTORE;
- INSTRUCTIONS[Constants.LASTORE] = LASTORE;
- INSTRUCTIONS[Constants.FASTORE] = FASTORE;
- INSTRUCTIONS[Constants.DASTORE] = DASTORE;
- INSTRUCTIONS[Constants.AASTORE] = AASTORE;
- INSTRUCTIONS[Constants.BASTORE] = BASTORE;
- INSTRUCTIONS[Constants.CASTORE] = CASTORE;
- INSTRUCTIONS[Constants.SASTORE] = SASTORE;
- INSTRUCTIONS[Constants.POP] = POP;
- INSTRUCTIONS[Constants.POP2] = POP2;
- INSTRUCTIONS[Constants.DUP] = DUP;
- INSTRUCTIONS[Constants.DUP_X1] = DUP_X1;
- INSTRUCTIONS[Constants.DUP_X2] = DUP_X2;
- INSTRUCTIONS[Constants.DUP2] = DUP2;
- INSTRUCTIONS[Constants.DUP2_X1] = DUP2_X1;
- INSTRUCTIONS[Constants.DUP2_X2] = DUP2_X2;
- INSTRUCTIONS[Constants.SWAP] = SWAP;
- INSTRUCTIONS[Constants.IADD] = IADD;
- INSTRUCTIONS[Constants.LADD] = LADD;
- INSTRUCTIONS[Constants.FADD] = FADD;
- INSTRUCTIONS[Constants.DADD] = DADD;
- INSTRUCTIONS[Constants.ISUB] = ISUB;
- INSTRUCTIONS[Constants.LSUB] = LSUB;
- INSTRUCTIONS[Constants.FSUB] = FSUB;
- INSTRUCTIONS[Constants.DSUB] = DSUB;
- INSTRUCTIONS[Constants.IMUL] = IMUL;
- INSTRUCTIONS[Constants.LMUL] = LMUL;
- INSTRUCTIONS[Constants.FMUL] = FMUL;
- INSTRUCTIONS[Constants.DMUL] = DMUL;
- INSTRUCTIONS[Constants.IDIV] = IDIV;
- INSTRUCTIONS[Constants.LDIV] = LDIV;
- INSTRUCTIONS[Constants.FDIV] = FDIV;
- INSTRUCTIONS[Constants.DDIV] = DDIV;
- INSTRUCTIONS[Constants.IREM] = IREM;
- INSTRUCTIONS[Constants.LREM] = LREM;
- INSTRUCTIONS[Constants.FREM] = FREM;
- INSTRUCTIONS[Constants.DREM] = DREM;
- INSTRUCTIONS[Constants.INEG] = INEG;
- INSTRUCTIONS[Constants.LNEG] = LNEG;
- INSTRUCTIONS[Constants.FNEG] = FNEG;
- INSTRUCTIONS[Constants.DNEG] = DNEG;
- INSTRUCTIONS[Constants.ISHL] = ISHL;
- INSTRUCTIONS[Constants.LSHL] = LSHL;
- INSTRUCTIONS[Constants.ISHR] = ISHR;
- INSTRUCTIONS[Constants.LSHR] = LSHR;
- INSTRUCTIONS[Constants.IUSHR] = IUSHR;
- INSTRUCTIONS[Constants.LUSHR] = LUSHR;
- INSTRUCTIONS[Constants.IAND] = IAND;
- INSTRUCTIONS[Constants.LAND] = LAND;
- INSTRUCTIONS[Constants.IOR] = IOR;
- INSTRUCTIONS[Constants.LOR] = LOR;
- INSTRUCTIONS[Constants.IXOR] = IXOR;
- INSTRUCTIONS[Constants.LXOR] = LXOR;
- INSTRUCTIONS[Constants.I2L] = I2L;
- INSTRUCTIONS[Constants.I2F] = I2F;
- INSTRUCTIONS[Constants.I2D] = I2D;
- INSTRUCTIONS[Constants.L2I] = L2I;
- INSTRUCTIONS[Constants.L2F] = L2F;
- INSTRUCTIONS[Constants.L2D] = L2D;
- INSTRUCTIONS[Constants.F2I] = F2I;
- INSTRUCTIONS[Constants.F2L] = F2L;
- INSTRUCTIONS[Constants.F2D] = F2D;
- INSTRUCTIONS[Constants.D2I] = D2I;
- INSTRUCTIONS[Constants.D2L] = D2L;
- INSTRUCTIONS[Constants.D2F] = D2F;
- INSTRUCTIONS[Constants.I2B] = I2B;
- INSTRUCTIONS[Constants.I2C] = I2C;
- INSTRUCTIONS[Constants.I2S] = I2S;
- INSTRUCTIONS[Constants.LCMP] = LCMP;
- INSTRUCTIONS[Constants.FCMPL] = FCMPL;
- INSTRUCTIONS[Constants.FCMPG] = FCMPG;
- INSTRUCTIONS[Constants.DCMPL] = DCMPL;
- INSTRUCTIONS[Constants.DCMPG] = DCMPG;
- INSTRUCTIONS[Constants.IRETURN] = IRETURN;
- INSTRUCTIONS[Constants.LRETURN] = LRETURN;
- INSTRUCTIONS[Constants.FRETURN] = FRETURN;
- INSTRUCTIONS[Constants.DRETURN] = DRETURN;
- INSTRUCTIONS[Constants.ARETURN] = ARETURN;
- INSTRUCTIONS[Constants.RETURN] = RETURN;
- INSTRUCTIONS[Constants.ARRAYLENGTH] = ARRAYLENGTH;
- INSTRUCTIONS[Constants.ATHROW] = ATHROW;
- INSTRUCTIONS[Constants.MONITORENTER] = MONITORENTER;
- INSTRUCTIONS[Constants.MONITOREXIT] = MONITOREXIT;
- }
- }
-}
diff --git a/src/org/apache/bcel/generic/InstructionFactory.java b/src/org/apache/bcel/generic/InstructionFactory.java
deleted file mode 100644
index 35c1c5f..0000000
--- a/src/org/apache/bcel/generic/InstructionFactory.java
+++ /dev/null
@@ -1,746 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import org.apache.bcel.Constants;
-
-/**
- * Instances of this class may be used, e.g., to generate typed versions of
- * instructions. Its main purpose is to be used as the byte code generating
- * backend of a compiler. You can subclass it to add your own create methods.
- *
- * @version $Id: InstructionFactory.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Constants
- */
-public class InstructionFactory implements InstructionConstants,
- java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- protected ClassGen cg;
- protected ConstantPoolGen cp;
-
- public InstructionFactory(ClassGen cg, ConstantPoolGen cp) {
- this.cg = cg;
- this.cp = cp;
- }
-
- /**
- * Initialize with ClassGen object
- */
- public InstructionFactory(ClassGen cg) {
- this(cg, cg.getConstantPool());
- }
-
- /**
- * Initialize just with ConstantPoolGen object
- */
- public InstructionFactory(ConstantPoolGen cp) {
- this(null, cp);
- }
-
- /**
- * Create an invoke instruction.
- *
- * @param class_name
- * name of the called class
- * @param name
- * name of the called method
- * @param ret_type
- * return type of method
- * @param arg_types
- * argument types of method
- * @param kind
- * how to invoke, i.e., INVOKEINTERFACE, INVOKESTATIC,
- * INVOKEVIRTUAL, or INVOKESPECIAL
- * @see Constants
- */
- public InvokeInstruction createInvoke(String class_name, String name,
- Type ret_type, Type[] arg_types, short kind) {
- int index;
- int nargs = 0;
- String signature = Type.getMethodSignature(ret_type, arg_types);
- for (int i = 0; i < arg_types.length; i++) {
- nargs += arg_types[i].getSize();
- }
- if (kind == Constants.INVOKEINTERFACE) {
- index = cp.addInterfaceMethodref(class_name, name, signature);
- } else {
- index = cp.addMethodref(class_name, name, signature);
- }
- switch (kind) {
- case Constants.INVOKESPECIAL:
- return new INVOKESPECIAL(index);
- case Constants.INVOKEVIRTUAL:
- return new INVOKEVIRTUAL(index);
- case Constants.INVOKESTATIC:
- return new INVOKESTATIC(index);
- case Constants.INVOKEINTERFACE:
- return new INVOKEINTERFACE(index, nargs + 1);
- default:
- throw new RuntimeException("Oops: Unknown invoke kind:" + kind);
- }
- }
-
- /**
- * Create a call to the most popular System.out.println() method.
- *
- * @param s
- * the string to print
- */
- public InstructionList createPrintln(String s) {
- InstructionList il = new InstructionList();
- int out = cp.addFieldref("java.lang.System", "out",
- "Ljava/io/PrintStream;");
- int println = cp.addMethodref("java.io.PrintStream", "println",
- "(Ljava/lang/String;)V");
- il.append(new GETSTATIC(out));
- il.append(new PUSH(cp, s));
- il.append(new INVOKEVIRTUAL(println));
- return il;
- }
-
- /**
- * Uses PUSH to push a constant value onto the stack.
- *
- * @param value
- * must be of type Number, Boolean, Character or String
- */
- public Instruction createConstant(Object value) {
- PUSH push;
- if (value instanceof Number) {
- push = new PUSH(cp, (Number) value);
- } else if (value instanceof String) {
- push = new PUSH(cp, (String) value);
- } else if (value instanceof Boolean) {
- push = new PUSH(cp, (Boolean) value);
- } else if (value instanceof Character) {
- push = new PUSH(cp, (Character) value);
- } else {
- throw new ClassGenException("Illegal type: " + value.getClass());
- }
- return push.getInstruction();
- }
-
- private static class MethodObject {
-
- Type[] arg_types;
- Type result_type;
- String class_name;
- String name;
-
- MethodObject(String c, String n, Type r, Type[] a, int acc) {
- class_name = c;
- name = n;
- result_type = r;
- arg_types = a;
- }
- }
-
- private InvokeInstruction createInvoke(MethodObject m, short kind) {
- return createInvoke(m.class_name, m.name, m.result_type, m.arg_types,
- kind);
- }
-
- private static MethodObject[] append_mos = {
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.STRING },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.OBJECT },
- Constants.ACC_PUBLIC),
- null,
- null, // indices 2, 3
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.BOOLEAN },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.CHAR },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.FLOAT },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.DOUBLE },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.INT },
- Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, // No append(byte)
- new Type[] { Type.INT }, Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, // No append(short)
- new Type[] { Type.INT }, Constants.ACC_PUBLIC),
- new MethodObject("java.lang.StringBuffer", "append",
- Type.STRINGBUFFER, new Type[] { Type.LONG },
- Constants.ACC_PUBLIC) };
-
- private static final boolean isString(Type type) {
- return ((type instanceof ObjectType) && ((ObjectType) type)
- .getClassName().equals("java.lang.String"));
- }
-
- public Instruction createAppend(Type type) {
- byte t = type.getType();
- if (isString(type)) {
- return createInvoke(append_mos[0], Constants.INVOKEVIRTUAL);
- }
- switch (t) {
- case Constants.T_BOOLEAN:
- case Constants.T_CHAR:
- case Constants.T_FLOAT:
- case Constants.T_DOUBLE:
- case Constants.T_BYTE:
- case Constants.T_SHORT:
- case Constants.T_INT:
- case Constants.T_LONG:
- return createInvoke(append_mos[t], Constants.INVOKEVIRTUAL);
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return createInvoke(append_mos[1], Constants.INVOKEVIRTUAL);
- default:
- throw new RuntimeException("Oops: No append for this type? " + type);
- }
- }
-
- /**
- * Create a field instruction.
- *
- * @param class_name
- * name of the accessed class
- * @param name
- * name of the referenced field
- * @param type
- * type of field
- * @param kind
- * how to access, i.e., GETFIELD, PUTFIELD, GETSTATIC, PUTSTATIC
- * @see Constants
- */
- public FieldInstruction createFieldAccess(String class_name, String name,
- Type type, short kind) {
- int index;
- String signature = type.getSignature();
- index = cp.addFieldref(class_name, name, signature);
- switch (kind) {
- case Constants.GETFIELD:
- return new GETFIELD(index);
- case Constants.PUTFIELD:
- return new PUTFIELD(index);
- case Constants.GETSTATIC:
- return new GETSTATIC(index);
- case Constants.PUTSTATIC:
- return new PUTSTATIC(index);
- default:
- throw new RuntimeException("Oops: Unknown getfield kind:" + kind);
- }
- }
-
- /**
- * Create reference to `this'
- */
- public static Instruction createThis() {
- return new ALOAD(0);
- }
-
- /**
- * Create typed return
- */
- public static ReturnInstruction createReturn(Type type) {
- switch (type.getType()) {
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return ARETURN;
- case Constants.T_INT:
- case Constants.T_SHORT:
- case Constants.T_BOOLEAN:
- case Constants.T_CHAR:
- case Constants.T_BYTE:
- return IRETURN;
- case Constants.T_FLOAT:
- return FRETURN;
- case Constants.T_DOUBLE:
- return DRETURN;
- case Constants.T_LONG:
- return LRETURN;
- case Constants.T_VOID:
- return RETURN;
- default:
- throw new RuntimeException("Invalid type: " + type);
- }
- }
-
- private static final ArithmeticInstruction createBinaryIntOp(char first,
- String op) {
- switch (first) {
- case '-':
- return ISUB;
- case '+':
- return IADD;
- case '%':
- return IREM;
- case '*':
- return IMUL;
- case '/':
- return IDIV;
- case '&':
- return IAND;
- case '|':
- return IOR;
- case '^':
- return IXOR;
- case '<':
- return ISHL;
- case '>':
- return op.equals(">>>") ? (ArithmeticInstruction) IUSHR
- : (ArithmeticInstruction) ISHR;
- default:
- throw new RuntimeException("Invalid operand " + op);
- }
- }
-
- private static final ArithmeticInstruction createBinaryLongOp(char first,
- String op) {
- switch (first) {
- case '-':
- return LSUB;
- case '+':
- return LADD;
- case '%':
- return LREM;
- case '*':
- return LMUL;
- case '/':
- return LDIV;
- case '&':
- return LAND;
- case '|':
- return LOR;
- case '^':
- return LXOR;
- case '<':
- return LSHL;
- case '>':
- return op.equals(">>>") ? (ArithmeticInstruction) LUSHR
- : (ArithmeticInstruction) LSHR;
- default:
- throw new RuntimeException("Invalid operand " + op);
- }
- }
-
- private static final ArithmeticInstruction createBinaryFloatOp(char op) {
- switch (op) {
- case '-':
- return FSUB;
- case '+':
- return FADD;
- case '*':
- return FMUL;
- case '/':
- return FDIV;
- default:
- throw new RuntimeException("Invalid operand " + op);
- }
- }
-
- private static final ArithmeticInstruction createBinaryDoubleOp(char op) {
- switch (op) {
- case '-':
- return DSUB;
- case '+':
- return DADD;
- case '*':
- return DMUL;
- case '/':
- return DDIV;
- default:
- throw new RuntimeException("Invalid operand " + op);
- }
- }
-
-/**
- * Create binary operation for simple basic types, such as int and float.
- *
- * @param op operation, such as "+", "*", "<<", etc.
- */
- public static ArithmeticInstruction createBinaryOperation(String op,
- Type type) {
- char first = op.toCharArray()[0];
- switch (type.getType()) {
- case Constants.T_BYTE:
- case Constants.T_SHORT:
- case Constants.T_INT:
- case Constants.T_CHAR:
- return createBinaryIntOp(first, op);
- case Constants.T_LONG:
- return createBinaryLongOp(first, op);
- case Constants.T_FLOAT:
- return createBinaryFloatOp(first);
- case Constants.T_DOUBLE:
- return createBinaryDoubleOp(first);
- default:
- throw new RuntimeException("Invalid type " + type);
- }
- }
-
- /**
- * @param size
- * size of operand, either 1 (int, e.g.) or 2 (double)
- */
- public static StackInstruction createPop(int size) {
- return (size == 2) ? (StackInstruction) POP2 : (StackInstruction) POP;
- }
-
- /**
- * @param size
- * size of operand, either 1 (int, e.g.) or 2 (double)
- */
- public static StackInstruction createDup(int size) {
- return (size == 2) ? (StackInstruction) DUP2 : (StackInstruction) DUP;
- }
-
- /**
- * @param size
- * size of operand, either 1 (int, e.g.) or 2 (double)
- */
- public static StackInstruction createDup_2(int size) {
- return (size == 2) ? (StackInstruction) DUP2_X2
- : (StackInstruction) DUP_X2;
- }
-
- /**
- * @param size
- * size of operand, either 1 (int, e.g.) or 2 (double)
- */
- public static StackInstruction createDup_1(int size) {
- return (size == 2) ? (StackInstruction) DUP2_X1
- : (StackInstruction) DUP_X1;
- }
-
- /**
- * @param index
- * index of local variable
- */
- public static LocalVariableInstruction createStore(Type type, int index) {
- switch (type.getType()) {
- case Constants.T_BOOLEAN:
- case Constants.T_CHAR:
- case Constants.T_BYTE:
- case Constants.T_SHORT:
- case Constants.T_INT:
- return new ISTORE(index);
- case Constants.T_FLOAT:
- return new FSTORE(index);
- case Constants.T_DOUBLE:
- return new DSTORE(index);
- case Constants.T_LONG:
- return new LSTORE(index);
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return new ASTORE(index);
- default:
- throw new RuntimeException("Invalid type " + type);
- }
- }
-
- /**
- * @param index
- * index of local variable
- */
- public static LocalVariableInstruction createLoad(Type type, int index) {
- switch (type.getType()) {
- case Constants.T_BOOLEAN:
- case Constants.T_CHAR:
- case Constants.T_BYTE:
- case Constants.T_SHORT:
- case Constants.T_INT:
- return new ILOAD(index);
- case Constants.T_FLOAT:
- return new FLOAD(index);
- case Constants.T_DOUBLE:
- return new DLOAD(index);
- case Constants.T_LONG:
- return new LLOAD(index);
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return new ALOAD(index);
- default:
- throw new RuntimeException("Invalid type " + type);
- }
- }
-
- /**
- * @param type
- * type of elements of array, i.e., array.getElementType()
- */
- public static ArrayInstruction createArrayLoad(Type type) {
- switch (type.getType()) {
- case Constants.T_BOOLEAN:
- case Constants.T_BYTE:
- return BALOAD;
- case Constants.T_CHAR:
- return CALOAD;
- case Constants.T_SHORT:
- return SALOAD;
- case Constants.T_INT:
- return IALOAD;
- case Constants.T_FLOAT:
- return FALOAD;
- case Constants.T_DOUBLE:
- return DALOAD;
- case Constants.T_LONG:
- return LALOAD;
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return AALOAD;
- default:
- throw new RuntimeException("Invalid type " + type);
- }
- }
-
- /**
- * @param type
- * type of elements of array, i.e., array.getElementType()
- */
- public static ArrayInstruction createArrayStore(Type type) {
- switch (type.getType()) {
- case Constants.T_BOOLEAN:
- case Constants.T_BYTE:
- return BASTORE;
- case Constants.T_CHAR:
- return CASTORE;
- case Constants.T_SHORT:
- return SASTORE;
- case Constants.T_INT:
- return IASTORE;
- case Constants.T_FLOAT:
- return FASTORE;
- case Constants.T_DOUBLE:
- return DASTORE;
- case Constants.T_LONG:
- return LASTORE;
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return AASTORE;
- default:
- throw new RuntimeException("Invalid type " + type);
- }
- }
-
- /**
- * Create conversion operation for two stack operands, this may be an I2C,
- * instruction, e.g., if the operands are basic types and CHECKCAST if they
- * are reference types.
- */
- public Instruction createCast(Type src_type, Type dest_type) {
- if ((src_type instanceof BasicType) && (dest_type instanceof BasicType)) {
- byte dest = dest_type.getType();
- byte src = src_type.getType();
- if (dest == Constants.T_LONG
- && (src == Constants.T_CHAR || src == Constants.T_BYTE || src == Constants.T_SHORT)) {
- src = Constants.T_INT;
- }
- String[] short_names = { "C", "F", "D", "B", "S", "I", "L" };
- String name = "org.apache.bcel.generic."
- + short_names[src - Constants.T_CHAR] + "2"
- + short_names[dest - Constants.T_CHAR];
- Instruction i = null;
- try {
- i = (Instruction) java.lang.Class.forName(name).newInstance();
- } catch (Exception e) {
- throw new RuntimeException("Could not find instruction: "
- + name);
- }
- return i;
- } else if ((src_type instanceof ReferenceType)
- && (dest_type instanceof ReferenceType)) {
- if (dest_type instanceof ArrayType) {
- return new CHECKCAST(cp.addArrayClass((ArrayType) dest_type));
- } else {
- return new CHECKCAST(cp.addClass(((ObjectType) dest_type)
- .getClassName()));
- }
- } else {
- throw new RuntimeException("Can not cast " + src_type + " to "
- + dest_type);
- }
- }
-
- public GETFIELD createGetField(String class_name, String name, Type t) {
- return new GETFIELD(cp.addFieldref(class_name, name, t.getSignature()));
- }
-
- public GETSTATIC createGetStatic(String class_name, String name, Type t) {
- return new GETSTATIC(cp.addFieldref(class_name, name, t.getSignature()));
- }
-
- public PUTFIELD createPutField(String class_name, String name, Type t) {
- return new PUTFIELD(cp.addFieldref(class_name, name, t.getSignature()));
- }
-
- public PUTSTATIC createPutStatic(String class_name, String name, Type t) {
- return new PUTSTATIC(cp.addFieldref(class_name, name, t.getSignature()));
- }
-
- public CHECKCAST createCheckCast(ReferenceType t) {
- if (t instanceof ArrayType) {
- return new CHECKCAST(cp.addArrayClass((ArrayType) t));
- } else {
- return new CHECKCAST(cp.addClass((ObjectType) t));
- }
- }
-
- public INSTANCEOF createInstanceOf(ReferenceType t) {
- if (t instanceof ArrayType) {
- return new INSTANCEOF(cp.addArrayClass((ArrayType) t));
- } else {
- return new INSTANCEOF(cp.addClass((ObjectType) t));
- }
- }
-
- public NEW createNew(ObjectType t) {
- return new NEW(cp.addClass(t));
- }
-
- public NEW createNew(String s) {
- return createNew(new ObjectType(s));
- }
-
- /**
- * Create new array of given size and type.
- *
- * @return an instruction that creates the corresponding array at runtime,
- * i.e. is an AllocationInstruction
- */
- public Instruction createNewArray(Type t, short dim) {
- if (dim == 1) {
- if (t instanceof ObjectType) {
- return new ANEWARRAY(cp.addClass((ObjectType) t));
- } else if (t instanceof ArrayType) {
- return new ANEWARRAY(cp.addArrayClass((ArrayType) t));
- } else {
- return new NEWARRAY(((BasicType) t).getType());
- }
- } else {
- ArrayType at;
- if (t instanceof ArrayType) {
- at = (ArrayType) t;
- } else {
- at = new ArrayType(t, dim);
- }
- return new MULTIANEWARRAY(cp.addArrayClass(at), dim);
- }
- }
-
- /**
- * Create "null" value for reference types, 0 for basic types like int
- */
- public static Instruction createNull(Type type) {
- switch (type.getType()) {
- case Constants.T_ARRAY:
- case Constants.T_OBJECT:
- return ACONST_NULL;
- case Constants.T_INT:
- case Constants.T_SHORT:
- case Constants.T_BOOLEAN:
- case Constants.T_CHAR:
- case Constants.T_BYTE:
- return ICONST_0;
- case Constants.T_FLOAT:
- return FCONST_0;
- case Constants.T_DOUBLE:
- return DCONST_0;
- case Constants.T_LONG:
- return LCONST_0;
- case Constants.T_VOID:
- return NOP;
- default:
- throw new RuntimeException("Invalid type: " + type);
- }
- }
-
- /**
- * Create branch instruction by given opcode, except LOOKUPSWITCH and
- * TABLESWITCH. For those you should use the SWITCH compound instruction.
- */
- public static BranchInstruction createBranchInstruction(short opcode,
- InstructionHandle target) {
- switch (opcode) {
- case Constants.IFEQ:
- return new IFEQ(target);
- case Constants.IFNE:
- return new IFNE(target);
- case Constants.IFLT:
- return new IFLT(target);
- case Constants.IFGE:
- return new IFGE(target);
- case Constants.IFGT:
- return new IFGT(target);
- case Constants.IFLE:
- return new IFLE(target);
- case Constants.IF_ICMPEQ:
- return new IF_ICMPEQ(target);
- case Constants.IF_ICMPNE:
- return new IF_ICMPNE(target);
- case Constants.IF_ICMPLT:
- return new IF_ICMPLT(target);
- case Constants.IF_ICMPGE:
- return new IF_ICMPGE(target);
- case Constants.IF_ICMPGT:
- return new IF_ICMPGT(target);
- case Constants.IF_ICMPLE:
- return new IF_ICMPLE(target);
- case Constants.IF_ACMPEQ:
- return new IF_ACMPEQ(target);
- case Constants.IF_ACMPNE:
- return new IF_ACMPNE(target);
- case Constants.GOTO:
- return new GOTO(target);
- case Constants.JSR:
- return new JSR(target);
- case Constants.IFNULL:
- return new IFNULL(target);
- case Constants.IFNONNULL:
- return new IFNONNULL(target);
- case Constants.GOTO_W:
- return new GOTO_W(target);
- case Constants.JSR_W:
- return new JSR_W(target);
- default:
- throw new RuntimeException("Invalid opcode: " + opcode);
- }
- }
-
- public void setClassGen(ClassGen c) {
- cg = c;
- }
-
- public ClassGen getClassGen() {
- return cg;
- }
-
- public void setConstantPool(ConstantPoolGen c) {
- cp = c;
- }
-
- public ConstantPoolGen getConstantPool() {
- return cp;
- }
-}
diff --git a/src/org/apache/bcel/generic/InstructionHandle.java b/src/org/apache/bcel/generic/InstructionHandle.java
deleted file mode 100644
index 5129d00..0000000
--- a/src/org/apache/bcel/generic/InstructionHandle.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Copyright 2000-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.bcel.generic;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.bcel.classfile.Utility;
-
-/**
- * Instances of this class give users a handle to the instructions contained in
- * an InstructionList. Instruction objects may be used more than once within a
- * list, this is useful because it saves memory and may be much faster.
- *
- * Within an InstructionList an InstructionHandle object is wrapped around all
- * instructions, i.e., it implements a cell in a doubly-linked list. From the
- * outside only the next and the previous instruction (handle) are accessible.
- * One can traverse the list via an Enumeration returned by
- * InstructionList.elements().
- *
- * @version $Id: InstructionHandle.java 386056 2006-03-15 11:31:56Z tcurdt $
- * @author M. Dahm
- * @see Instruction
- * @see BranchHandle
- * @see InstructionList
- */
-public class InstructionHandle implements java.io.Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- InstructionHandle next, prev; // Will be set from the outside
- Instruction instruction;
- protected int i_position = -1; // byte code offset of instruction
- private Set targeters;
- private Map