@@ -54,15 +54,16 @@ package org.aspectj.apache.bcel.classfile; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.Constants; | |||
import java.io.*; | |||
import java.io.DataInputStream; | |||
import java.io.DataOutputStream; | |||
import java.io.IOException; | |||
/** | |||
* This class represents a stack map entry recording the types of | |||
* local variables and the the of stack items at a given byte code offset. | |||
* See CLDC specification §5.3.1.2 | |||
* | |||
* @version $Id: StackMapEntry.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: StackMapEntry.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see StackMap | |||
* @see StackMapType |
@@ -54,13 +54,13 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.util.ByteSequence; | |||
import org.aspectj.apache.bcel.Constants; | |||
import java.io.DataOutputStream; | |||
import java.io.IOException; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
import org.aspectj.apache.bcel.classfile.ConstantClass; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.util.ByteSequence; | |||
/** | |||
* Abstract super class for instructions that use an index into the | |||
@@ -70,7 +70,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* @see LDC | |||
* @see INVOKEVIRTUAL | |||
* | |||
* @version $Id: CPInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: CPInstruction.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class CPInstruction extends Instruction |
@@ -54,6 +54,10 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.AccessFlags; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
@@ -65,19 +69,14 @@ import org.aspectj.apache.bcel.classfile.SourceFile; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.annotation.Annotation; | |||
import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.annotation.AnnotationGen; | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
/** | |||
* Template class for building up a java class. May be initialized with an | |||
* existing java class (file). | |||
* | |||
* @see JavaClass | |||
* @version $Id: ClassGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ClassGen.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public class ClassGen extends AccessFlags implements Cloneable { | |||
@@ -302,7 +301,7 @@ public class ClassGen extends AccessFlags implements Cloneable { | |||
MethodGen mg = new MethodGen(access_flags, Type.VOID, Type.NO_ARGS, null, | |||
"<init>", class_name, il, cp); | |||
mg.setMaxStack(1); | |||
//mg.setMaxLocals(); | |||
mg.setMaxLocals(); | |||
addMethod(mg.getMethod()); | |||
} | |||
@@ -54,9 +54,7 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.CodeException; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* This class represents an exception handler, i.e., specifies the region where | |||
@@ -67,7 +65,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* 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,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: CodeExceptionGen.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see MethodGen | |||
* @see CodeException |
@@ -54,6 +54,8 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.HashMap; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
import org.aspectj.apache.bcel.classfile.ConstantCP; | |||
@@ -69,9 +71,6 @@ import org.aspectj.apache.bcel.classfile.ConstantNameAndType; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.ConstantString; | |||
import org.aspectj.apache.bcel.classfile.ConstantUtf8; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.util.HashMap; | |||
/** | |||
* This class is used to build up a constant pool. The user adds | |||
@@ -83,7 +82,7 @@ import java.util.HashMap; | |||
* 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,v 1.2 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: ConstantPoolGen.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see Constant | |||
*/ |
@@ -54,6 +54,10 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
@@ -64,19 +68,14 @@ import org.aspectj.apache.bcel.classfile.Field; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.annotation.Annotation; | |||
import org.aspectj.apache.bcel.classfile.annotation.RuntimeAnnotations; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.annotation.AnnotationGen; | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
/** | |||
* 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,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: FieldGen.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see Field | |||
*/ |
@@ -1,5 +1,4 @@ | |||
package org.aspectj.apache.bcel.generic; | |||
import org.aspectj.apache.bcel.Constants; | |||
/* ==================================================================== | |||
* The Apache Software License, Version 1.1 | |||
@@ -55,18 +54,18 @@ import org.aspectj.apache.bcel.Constants; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.ArrayList; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.AccessFlags; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.annotation.AnnotationGen; | |||
import java.util.ArrayList; | |||
/** | |||
* Super class for FieldGen and MethodGen objects, since they have | |||
* some methods in common! | |||
* | |||
* @version $Id: FieldGenOrMethodGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: FieldGenOrMethodGen.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class FieldGenOrMethodGen extends AccessFlags |
@@ -55,15 +55,11 @@ package org.aspectj.apache.bcel.generic; | |||
*/ | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.ConstantUtf8; | |||
import org.aspectj.apache.bcel.classfile.ConstantNameAndType; | |||
import org.aspectj.apache.bcel.classfile.ConstantCP; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* Super class for the GET/PUTxxx family of instructions. | |||
* | |||
* @version $Id: FieldInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: FieldInstruction.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class FieldInstruction extends FieldOrMethod |
@@ -57,13 +57,12 @@ import org.aspectj.apache.bcel.classfile.ConstantCP; | |||
import org.aspectj.apache.bcel.classfile.ConstantNameAndType; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.ConstantUtf8; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* Super class for InvokeInstruction and FieldInstruction, since they have | |||
* some methods in common! | |||
* | |||
* @version $Id: FieldOrMethod.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: FieldOrMethod.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class FieldOrMethod extends CPInstruction implements LoadClass { |
@@ -54,16 +54,18 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.DataOutputStream; | |||
import java.io.IOException; | |||
import java.io.Serializable; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.util.ByteSequence; | |||
/** | |||
* Abstract super class for all Java byte codes. | |||
* | |||
* @version $Id: Instruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Instruction.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class Instruction implements Cloneable, Serializable { |
@@ -53,17 +53,16 @@ package org.aspectj.apache.bcel.generic; | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.StringTokenizer; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.util.StringTokenizer; | |||
/** | |||
* Super class for the INVOKExxx family of instructions. | |||
* | |||
* @version $Id: InvokeInstruction.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: InvokeInstruction.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class InvokeInstruction extends FieldOrMethod |
@@ -54,15 +54,13 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.LineNumber; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* This class represents a line number within a method, i.e., give an instruction | |||
* a line number corresponding to the source code line. | |||
* | |||
* @version $Id: LineNumberGen.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: LineNumberGen.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see LineNumber | |||
* @see MethodGen |
@@ -56,7 +56,6 @@ package org.aspectj.apache.bcel.generic; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.LocalVariable; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* This class represents a local variable within a method. It contains its | |||
@@ -64,7 +63,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* with getLocalVariable which needs the instruction list and the constant | |||
* pool as parameters. | |||
* | |||
* @version $Id: LocalVariableGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: LocalVariableGen.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see LocalVariable | |||
* @see MethodGen |
@@ -53,15 +53,16 @@ package org.aspectj.apache.bcel.generic; | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.util.ByteSequence; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import java.io.DataOutputStream; | |||
import java.io.IOException; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.util.ByteSequence; | |||
/** | |||
* Abstract super class for instructions dealing with local variables. | |||
* | |||
* @version $Id: LocalVariableInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: LocalVariableInstruction.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class LocalVariableInstruction extends Instruction |
@@ -53,14 +53,13 @@ package org.aspectj.apache.bcel.generic; | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.ExceptionConstants; | |||
/** | |||
* NEW - Create new object | |||
* <PRE>Stack: ... -> ..., objectref</PRE> | |||
* | |||
* @version $Id: NEW.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: NEW.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public class NEW extends CPInstruction |
@@ -54,13 +54,12 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.Constants; | |||
import java.io.*; | |||
/** | |||
* Wrapper class for push operations, which are implemented either as BIPUSH, | |||
* LDC or xCONST_n instructions. | |||
* | |||
* @version $Id: PUSH.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: PUSH.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public final class PUSH |
@@ -54,18 +54,17 @@ package org.aspectj.apache.bcel.generic; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.ArrayList; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.ClassFormatException; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.util.ArrayList; | |||
/** | |||
* Abstract super class for all possible java types, namely basic types | |||
* such as int, object types like String and array types, e.g. int[] | |||
* | |||
* @version $Id: Type.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ | |||
* @version $Id: Type.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public abstract class Type implements java.io.Serializable { |
@@ -54,6 +54,10 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.PrintWriter; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.Code; | |||
import org.aspectj.apache.bcel.classfile.CodeException; | |||
@@ -69,14 +73,11 @@ import org.aspectj.apache.bcel.classfile.LocalVariable; | |||
import org.aspectj.apache.bcel.classfile.LocalVariableTable; | |||
import org.aspectj.apache.bcel.classfile.SourceFile; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.io.*; | |||
/** | |||
* Convert found attributes into HTML file. | |||
* | |||
* @version $Id: AttributeHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: AttributeHTML.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* | |||
*/ |
@@ -53,17 +53,21 @@ package org.aspectj.apache.bcel.util; | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.OutputStream; | |||
import java.io.PrintWriter; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.ClassParser; | |||
import org.aspectj.apache.bcel.classfile.ConstantValue; | |||
import org.aspectj.apache.bcel.classfile.Field; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.Constants; | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.generic.ArrayType; | |||
import org.aspectj.apache.bcel.generic.ConstantPoolGen; | |||
import org.aspectj.apache.bcel.generic.MethodGen; | |||
import org.aspectj.apache.bcel.generic.Type; | |||
/** | |||
* This class takes a given JavaClass object and converts it to a | |||
@@ -72,7 +76,7 @@ import java.io.*; | |||
* are done with BCEL. It does not cover all features of BCEL, | |||
* but tries to mimic hand-written code as close as possible. | |||
* | |||
* @version $Id: BCELifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: BCELifier.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public class BCELifier extends org.aspectj.apache.bcel.classfile.EmptyVisitor { |
@@ -54,17 +54,18 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import java.util.BitSet; | |||
import java.io.File; | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.PrintWriter; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.ClassParser; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.Constants; | |||
/** | |||
* Read class file(s) and convert them into HTML files. | |||
@@ -85,7 +86,7 @@ import org.aspectj.apache.bcel.Constants; | |||
* method in the Method's frame will jump to the appropiate method in | |||
* the Code frame. | |||
* | |||
* @version $Id: Class2HTML.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Class2HTML.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
*/ | |||
public class Class2HTML implements Constants |
@@ -54,16 +54,16 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.ByteArrayInputStream; | |||
import java.util.Hashtable; | |||
import java.io.*; | |||
import org.aspectj.apache.bcel.*; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.ClassParser; | |||
import org.aspectj.apache.bcel.classfile.ConstantClass; | |||
import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.ConstantUtf8; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* <p>Drop in replacement for the standard class loader of the JVM. You can use it | |||
@@ -83,7 +83,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* where to use the system class loader in the constructor. The default value contains | |||
* "java.", "sun.", "javax."</p> | |||
* | |||
* @version $Id: ClassLoader.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ClassLoader.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @see JavaWrapper | |||
* @see ClassPath |
@@ -54,14 +54,12 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import java.util.Map; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.util.HashMap; | |||
import org.aspectj.apache.bcel.classfile.ClassParser; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* The repository maintains information about which classes have | |||
@@ -72,7 +70,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* | |||
* @see org.aspectj.apache.bcel.Repository | |||
* | |||
* @version $Id: ClassLoaderRepository.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ClassLoaderRepository.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @author David Dixon-Peugh | |||
*/ |
@@ -54,6 +54,11 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.PrintWriter; | |||
import java.util.BitSet; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.Code; | |||
import org.aspectj.apache.bcel.classfile.CodeException; | |||
@@ -66,15 +71,11 @@ import org.aspectj.apache.bcel.classfile.LocalVariable; | |||
import org.aspectj.apache.bcel.classfile.LocalVariableTable; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.io.*; | |||
import java.util.BitSet; | |||
/** | |||
* Convert code into HTML file. | |||
* | |||
* @version $Id: CodeHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: CodeHTML.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* | |||
*/ |
@@ -55,6 +55,10 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.PrintWriter; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
import org.aspectj.apache.bcel.classfile.ConstantClass; | |||
import org.aspectj.apache.bcel.classfile.ConstantFieldref; | |||
@@ -65,14 +69,11 @@ import org.aspectj.apache.bcel.classfile.ConstantPool; | |||
import org.aspectj.apache.bcel.classfile.ConstantString; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.io.*; | |||
/** | |||
* Convert constant pool into HTML file. | |||
* | |||
* @version $Id: ConstantHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ConstantHTML.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* | |||
*/ |
@@ -54,6 +54,10 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.FileOutputStream; | |||
import java.io.IOException; | |||
import java.io.PrintWriter; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.Code; | |||
import org.aspectj.apache.bcel.classfile.ConstantValue; | |||
@@ -61,14 +65,11 @@ import org.aspectj.apache.bcel.classfile.ExceptionTable; | |||
import org.aspectj.apache.bcel.classfile.Field; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.Utility; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import java.io.*; | |||
/** | |||
* Convert methods and fields into HTML file. | |||
* | |||
* @version $Id: MethodHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: MethodHTML.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* | |||
*/ |
@@ -54,14 +54,12 @@ package org.aspectj.apache.bcel.util; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import java.util.Map; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
import java.util.HashMap; | |||
import org.aspectj.apache.bcel.classfile.ClassParser; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
/** | |||
* This repository is used in situations where a Class is created | |||
@@ -80,7 +78,7 @@ import org.aspectj.apache.bcel.classfile.tests.*; | |||
* | |||
* @see org.aspectj.apache.bcel.Repository | |||
* | |||
* @version $Id: SyntheticRepository.java,v 1.4 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: SyntheticRepository.java,v 1.5 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> | |||
* @author David Dixon-Peugh | |||
*/ |
@@ -54,16 +54,18 @@ package org.aspectj.apache.bcel.verifier; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.awt.Dimension; | |||
import java.awt.Toolkit; | |||
import javax.swing.UIManager; | |||
import java.awt.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.generic.Type; | |||
/** | |||
* A graphical user interface application demonstrating JustIce. | |||
* | |||
* @version $Id: GraphicalVerifier.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: GraphicalVerifier.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author Enver Haase | |||
*/ | |||
public class GraphicalVerifier { |
@@ -54,10 +54,8 @@ package org.aspectj.apache.bcel.verifier; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.*; | |||
/** | |||
* This class has a main method implementing a demonstration program | |||
@@ -65,7 +63,7 @@ import org.aspectj.apache.bcel.*; | |||
* all class files encountered; this may take up a lot of time and, | |||
* more notably, memory. | |||
* | |||
* @version $Id: TransitiveHull.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: TransitiveHull.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
*/ | |||
public class TransitiveHull implements VerifierFactoryObserver{ |
@@ -54,15 +54,16 @@ package org.aspectj.apache.bcel.verifier; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.*; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.verifier.statics.*; | |||
import org.aspectj.apache.bcel.verifier.structurals.*; | |||
import java.util.ArrayList; | |||
import java.util.HashMap; | |||
import java.util.Iterator; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.verifier.statics.Pass1Verifier; | |||
import org.aspectj.apache.bcel.verifier.statics.Pass2Verifier; | |||
import org.aspectj.apache.bcel.verifier.statics.Pass3aVerifier; | |||
import org.aspectj.apache.bcel.verifier.structurals.Pass3bVerifier; | |||
/** | |||
* A Verifier instance is there to verify a class file according to The Java Virtual | |||
* Machine Specification, 2nd Edition. | |||
@@ -74,7 +75,7 @@ import java.util.Iterator; | |||
* A Verifier creates PassVerifier instances to perform the actual verification. | |||
* Verifier instances are usually generated by the VerifierFactory. | |||
* | |||
* @version $Id: Verifier.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Verifier.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see org.aspectj.apache.bcel.verifier.VerifierFactory | |||
* @see org.aspectj.apache.bcel.verifier.PassVerifier |
@@ -54,20 +54,36 @@ package org.aspectj.apache.bcel.verifier; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.awt.*; | |||
import java.awt.event.*; | |||
import javax.swing.*; | |||
import javax.swing.event.*; | |||
import org.aspectj.apache.bcel.*; | |||
import java.awt.AWTEvent; | |||
import java.awt.CardLayout; | |||
import java.awt.Color; | |||
import java.awt.Dimension; | |||
import java.awt.GridLayout; | |||
import java.awt.event.ActionEvent; | |||
import java.awt.event.WindowEvent; | |||
import javax.swing.BorderFactory; | |||
import javax.swing.JFrame; | |||
import javax.swing.JList; | |||
import javax.swing.JMenu; | |||
import javax.swing.JMenuBar; | |||
import javax.swing.JMenuItem; | |||
import javax.swing.JOptionPane; | |||
import javax.swing.JPanel; | |||
import javax.swing.JScrollPane; | |||
import javax.swing.JSplitPane; | |||
import javax.swing.JTextPane; | |||
import javax.swing.ListSelectionModel; | |||
import javax.swing.event.ListSelectionEvent; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
/** | |||
* This class implements a machine-generated frame for use with | |||
* the GraphicalVerfifier. | |||
* | |||
* @version $Id: VerifierAppFrame.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: VerifierAppFrame.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author Enver Haase | |||
* @see GraphicalVerifier | |||
*/ |
@@ -53,13 +53,12 @@ package org.aspectj.apache.bcel.verifier; | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import javax.swing.event.*; | |||
import javax.swing.event.ListDataEvent; | |||
/** | |||
* This class implements an adapter; it implements both a Swing ListModel and | |||
* a VerifierFactoryObserver. | |||
* | |||
* @version $Id: VerifierFactoryListModel.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: VerifierFactoryListModel.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author Enver Haase | |||
*/ | |||
public class VerifierFactoryListModel implements org.aspectj.apache.bcel.verifier.VerifierFactoryObserver, javax.swing.ListModel{ |
@@ -54,12 +54,11 @@ package org.aspectj.apache.bcel.verifier; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.*; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import java.awt.Color; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
/** | |||
* A class for simple graphical class file verification. | |||
* Use the main(String []) method with fully qualified | |||
@@ -69,7 +68,7 @@ import java.awt.Color; | |||
* class in your application. | |||
* [This class was created using VisualAge for Java, | |||
* but it does not work under VAJ itself (Version 3.02 JDK 1.2)] | |||
* @version $Id: VerifyDialog.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: VerifyDialog.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #main(String[]) | |||
* @see #VerifyDialog(String) |
@@ -54,11 +54,12 @@ package org.aspectj.apache.bcel.verifier.statics; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.verifier.PassVerifier; | |||
import org.aspectj.apache.bcel.verifier.VerificationResult; | |||
import org.aspectj.apache.bcel.verifier.Verifier; | |||
import org.aspectj.apache.bcel.verifier.exc.LoadingException; | |||
import org.aspectj.apache.bcel.verifier.exc.Utility; | |||
/** | |||
@@ -67,7 +68,7 @@ import org.aspectj.apache.bcel.verifier.exc.Utility; | |||
* More detailed information is to be found at the do_verify() method's | |||
* documentation. | |||
* | |||
* @version $Id: Pass1Verifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Pass1Verifier.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #do_verify() | |||
*/ |
@@ -54,6 +54,9 @@ package org.aspectj.apache.bcel.verifier.statics; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.util.HashMap; | |||
import java.util.HashSet; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
@@ -74,8 +77,8 @@ import org.aspectj.apache.bcel.classfile.ConstantString; | |||
import org.aspectj.apache.bcel.classfile.ConstantUtf8; | |||
import org.aspectj.apache.bcel.classfile.ConstantValue; | |||
import org.aspectj.apache.bcel.classfile.Deprecated; | |||
import org.aspectj.apache.bcel.classfile.DescendingVisitor; // Use _this_ one! | |||
import org.aspectj.apache.bcel.classfile.EmptyVisitor; // Use _this_ one! | |||
import org.aspectj.apache.bcel.classfile.DescendingVisitor; | |||
import org.aspectj.apache.bcel.classfile.EmptyVisitor; | |||
import org.aspectj.apache.bcel.classfile.ExceptionTable; | |||
import org.aspectj.apache.bcel.classfile.Field; | |||
import org.aspectj.apache.bcel.classfile.InnerClass; | |||
@@ -90,13 +93,17 @@ import org.aspectj.apache.bcel.classfile.Node; | |||
import org.aspectj.apache.bcel.classfile.SourceFile; | |||
import org.aspectj.apache.bcel.classfile.Synthetic; | |||
import org.aspectj.apache.bcel.classfile.Unknown; | |||
import org.aspectj.apache.bcel.classfile.Visitor; // Use _this_ one! | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import java.util.HashMap; | |||
import java.util.HashSet; | |||
import org.aspectj.apache.bcel.classfile.Visitor; | |||
import org.aspectj.apache.bcel.generic.ArrayType; | |||
import org.aspectj.apache.bcel.generic.ObjectType; | |||
import org.aspectj.apache.bcel.generic.Type; | |||
import org.aspectj.apache.bcel.verifier.PassVerifier; | |||
import org.aspectj.apache.bcel.verifier.VerificationResult; | |||
import org.aspectj.apache.bcel.verifier.Verifier; | |||
import org.aspectj.apache.bcel.verifier.VerifierFactory; | |||
import org.aspectj.apache.bcel.verifier.exc.AssertionViolatedException; | |||
import org.aspectj.apache.bcel.verifier.exc.ClassConstraintException; | |||
import org.aspectj.apache.bcel.verifier.exc.LocalVariableInfoInconsistentException; | |||
/** | |||
* This PassVerifier verifies a class file according to | |||
@@ -105,7 +112,7 @@ import java.util.HashSet; | |||
* More detailed information is to be found at the do_verify() | |||
* method's documentation. | |||
* | |||
* @version $Id: Pass2Verifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Pass2Verifier.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #do_verify() | |||
*/ |
@@ -54,8 +54,8 @@ package org.aspectj.apache.bcel.verifier.statics; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.*; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.Code; | |||
import org.aspectj.apache.bcel.classfile.CodeException; | |||
@@ -78,9 +78,61 @@ import org.aspectj.apache.bcel.classfile.LineNumberTable; | |||
import org.aspectj.apache.bcel.classfile.LocalVariable; | |||
import org.aspectj.apache.bcel.classfile.LocalVariableTable; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import org.aspectj.apache.bcel.generic.ALOAD; | |||
import org.aspectj.apache.bcel.generic.ANEWARRAY; | |||
import org.aspectj.apache.bcel.generic.ASTORE; | |||
import org.aspectj.apache.bcel.generic.ATHROW; | |||
import org.aspectj.apache.bcel.generic.ArrayType; | |||
import org.aspectj.apache.bcel.generic.BREAKPOINT; | |||
import org.aspectj.apache.bcel.generic.CHECKCAST; | |||
import org.aspectj.apache.bcel.generic.ConstantPoolGen; | |||
import org.aspectj.apache.bcel.generic.DLOAD; | |||
import org.aspectj.apache.bcel.generic.DSTORE; | |||
import org.aspectj.apache.bcel.generic.FLOAD; | |||
import org.aspectj.apache.bcel.generic.FSTORE; | |||
import org.aspectj.apache.bcel.generic.FieldInstruction; | |||
import org.aspectj.apache.bcel.generic.GETSTATIC; | |||
import org.aspectj.apache.bcel.generic.GotoInstruction; | |||
import org.aspectj.apache.bcel.generic.IINC; | |||
import org.aspectj.apache.bcel.generic.ILOAD; | |||
import org.aspectj.apache.bcel.generic.IMPDEP1; | |||
import org.aspectj.apache.bcel.generic.IMPDEP2; | |||
import org.aspectj.apache.bcel.generic.INSTANCEOF; | |||
import org.aspectj.apache.bcel.generic.INVOKEINTERFACE; | |||
import org.aspectj.apache.bcel.generic.INVOKESPECIAL; | |||
import org.aspectj.apache.bcel.generic.INVOKESTATIC; | |||
import org.aspectj.apache.bcel.generic.INVOKEVIRTUAL; | |||
import org.aspectj.apache.bcel.generic.ISTORE; | |||
import org.aspectj.apache.bcel.generic.Instruction; | |||
import org.aspectj.apache.bcel.generic.InstructionHandle; | |||
import org.aspectj.apache.bcel.generic.InstructionList; | |||
import org.aspectj.apache.bcel.generic.InvokeInstruction; | |||
import org.aspectj.apache.bcel.generic.JsrInstruction; | |||
import org.aspectj.apache.bcel.generic.LDC; | |||
import org.aspectj.apache.bcel.generic.LDC2_W; | |||
import org.aspectj.apache.bcel.generic.LLOAD; | |||
import org.aspectj.apache.bcel.generic.LOOKUPSWITCH; | |||
import org.aspectj.apache.bcel.generic.LSTORE; | |||
import org.aspectj.apache.bcel.generic.LoadClass; | |||
import org.aspectj.apache.bcel.generic.MULTIANEWARRAY; | |||
import org.aspectj.apache.bcel.generic.NEW; | |||
import org.aspectj.apache.bcel.generic.NEWARRAY; | |||
import org.aspectj.apache.bcel.generic.ObjectType; | |||
import org.aspectj.apache.bcel.generic.PUTSTATIC; | |||
import org.aspectj.apache.bcel.generic.RET; | |||
import org.aspectj.apache.bcel.generic.ReturnInstruction; | |||
import org.aspectj.apache.bcel.generic.TABLESWITCH; | |||
import org.aspectj.apache.bcel.generic.Type; | |||
import org.aspectj.apache.bcel.verifier.PassVerifier; | |||
import org.aspectj.apache.bcel.verifier.VerificationResult; | |||
import org.aspectj.apache.bcel.verifier.Verifier; | |||
import org.aspectj.apache.bcel.verifier.VerifierFactory; | |||
import org.aspectj.apache.bcel.verifier.exc.AssertionViolatedException; | |||
import org.aspectj.apache.bcel.verifier.exc.ClassConstraintException; | |||
import org.aspectj.apache.bcel.verifier.exc.InvalidMethodException; | |||
import org.aspectj.apache.bcel.verifier.exc.StaticCodeConstraintException; | |||
import org.aspectj.apache.bcel.verifier.exc.StaticCodeInstructionConstraintException; | |||
import org.aspectj.apache.bcel.verifier.exc.StaticCodeInstructionOperandConstraintException; | |||
/** | |||
* This PassVerifier verifies a class file according to | |||
@@ -89,7 +141,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; | |||
* More detailed information is to be found at the do_verify() | |||
* method's documentation. | |||
* | |||
* @version $Id: Pass3aVerifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Pass3aVerifier.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #do_verify() | |||
*/ |
@@ -87,8 +87,7 @@ import org.aspectj.apache.bcel.classfile.StackMap; | |||
import org.aspectj.apache.bcel.classfile.Synthetic; | |||
import org.aspectj.apache.bcel.classfile.Unknown; | |||
import org.aspectj.apache.bcel.classfile.Visitor; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import org.aspectj.apache.bcel.verifier.exc.AssertionViolatedException; | |||
/** | |||
* BCEL's Node classes (those from the classfile API that <B>accept()</B> Visitor | |||
@@ -102,7 +101,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; | |||
* Note that this class also serves as a placeholder for more sophisticated message | |||
* handling in future versions of JustIce. | |||
* | |||
* @version $Id: StringRepresentation.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: StringRepresentation.java,v 1.3 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
*/ | |||
public class StringRepresentation extends org.aspectj.apache.bcel.classfile.EmptyVisitor implements Visitor{ |
@@ -54,15 +54,27 @@ package org.aspectj.apache.bcel.verifier.structurals; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.verifier.VerifierFactory; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import java.util.*; | |||
import java.util.ArrayList; | |||
import java.util.HashMap; | |||
import java.util.Hashtable; | |||
import org.aspectj.apache.bcel.generic.ATHROW; | |||
import org.aspectj.apache.bcel.generic.BranchInstruction; | |||
import org.aspectj.apache.bcel.generic.GotoInstruction; | |||
import org.aspectj.apache.bcel.generic.Instruction; | |||
import org.aspectj.apache.bcel.generic.InstructionHandle; | |||
import org.aspectj.apache.bcel.generic.JsrInstruction; | |||
import org.aspectj.apache.bcel.generic.MethodGen; | |||
import org.aspectj.apache.bcel.generic.RET; | |||
import org.aspectj.apache.bcel.generic.ReturnInstruction; | |||
import org.aspectj.apache.bcel.generic.Select; | |||
import org.aspectj.apache.bcel.verifier.exc.AssertionViolatedException; | |||
import org.aspectj.apache.bcel.verifier.exc.StructuralCodeConstraintException; | |||
/** | |||
* This class represents a control flow graph of a method. | |||
* | |||
* @version $Id: ControlFlowGraph.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ControlFlowGraph.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
*/ | |||
public class ControlFlowGraph{ |
@@ -55,19 +55,13 @@ package org.aspectj.apache.bcel.verifier.structurals; | |||
*/ | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Constant; | |||
import org.aspectj.apache.bcel.classfile.ConstantDouble; | |||
import org.aspectj.apache.bcel.classfile.ConstantFloat; | |||
import org.aspectj.apache.bcel.classfile.ConstantInteger; | |||
import org.aspectj.apache.bcel.classfile.ConstantLong; | |||
import org.aspectj.apache.bcel.classfile.ConstantString; | |||
import org.aspectj.apache.bcel.verifier.Verifier; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import java.util.ArrayList; | |||
import java.util.Hashtable; | |||
import org.aspectj.apache.bcel.generic.*; | |||
/** | |||
* This Visitor class may be used for a type-based Java Virtual Machine | |||
@@ -92,7 +86,7 @@ import java.util.Hashtable; | |||
* If a two-slot type is stored into a local variable, the next variable | |||
* is given the type Type.UNKNOWN. | |||
* | |||
* @version $Id: ExecutionVisitor.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: ExecutionVisitor.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #visitDSTORE(DSTORE o) | |||
* @see InstConstraintVisitor |
@@ -54,15 +54,12 @@ package org.aspectj.apache.bcel.verifier.structurals; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import java.util.ArrayList; | |||
/** | |||
* This class represents a JVM execution frame; that means, | |||
* a local variable array and an operand stack. | |||
* | |||
* @version $Id: Frame.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Frame.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
*/ | |||
@@ -54,16 +54,16 @@ package org.aspectj.apache.bcel.verifier.structurals; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import org.aspectj.apache.bcel.generic.InstructionHandle; | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import org.aspectj.apache.bcel.generic.InstructionHandle; | |||
/** | |||
* An InstructionContext offers convenient access | |||
* to information like control flow successors and | |||
* such. | |||
* | |||
* @version $Id: InstructionContext.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: InstructionContext.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
*/ | |||
public interface InstructionContext{ |
@@ -54,19 +54,30 @@ package org.aspectj.apache.bcel.verifier.structurals; | |||
* <http://www.apache.org/>. | |||
*/ | |||
import java.io.*; | |||
import java.io.PrintWriter; | |||
import java.io.StringWriter; | |||
import java.util.ArrayList; | |||
import java.util.Random; | |||
import java.util.Vector; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.Repository; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.apache.bcel.classfile.tests.*; | |||
import org.aspectj.apache.bcel.generic.*; | |||
import org.aspectj.apache.bcel.verifier.*; | |||
import org.aspectj.apache.bcel.verifier.statics.*; | |||
import org.aspectj.apache.bcel.verifier.exc.*; | |||
import org.aspectj.apache.bcel.generic.ConstantPoolGen; | |||
import org.aspectj.apache.bcel.generic.InstructionHandle; | |||
import org.aspectj.apache.bcel.generic.JsrInstruction; | |||
import org.aspectj.apache.bcel.generic.MethodGen; | |||
import org.aspectj.apache.bcel.generic.ObjectType; | |||
import org.aspectj.apache.bcel.generic.RET; | |||
import org.aspectj.apache.bcel.generic.ReturnInstruction; | |||
import org.aspectj.apache.bcel.generic.ReturnaddressType; | |||
import org.aspectj.apache.bcel.generic.Type; | |||
import org.aspectj.apache.bcel.verifier.PassVerifier; | |||
import org.aspectj.apache.bcel.verifier.VerificationResult; | |||
import org.aspectj.apache.bcel.verifier.Verifier; | |||
import org.aspectj.apache.bcel.verifier.exc.AssertionViolatedException; | |||
import org.aspectj.apache.bcel.verifier.exc.VerifierConstraintViolatedException; | |||
/** | |||
* This PassVerifier verifies a method of class file according to pass 3, | |||
@@ -75,7 +86,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; | |||
* More detailed information is to be found at the do_verify() method's | |||
* documentation. | |||
* | |||
* @version $Id: Pass3bVerifier.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ | |||
* @version $Id: Pass3bVerifier.java,v 1.4 2004/11/22 08:31:27 aclement Exp $ | |||
* @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> | |||
* @see #do_verify() | |||
*/ |