diff options
author | aclement <aclement> | 2004-11-19 16:45:18 +0000 |
---|---|---|
committer | aclement <aclement> | 2004-11-19 16:45:18 +0000 |
commit | 1ad46c857bb676ff7237b9b6519b2db3563efb66 (patch) | |
tree | 5f22887b5c34b74f3a1220dd481f5530d643b85a /bcel-builder | |
parent | 8644e07c0dcee8a4e24b0bcdb320c9bfa47d9612 (diff) | |
download | aspectj-1ad46c857bb676ff7237b9b6519b2db3563efb66.tar.gz aspectj-1ad46c857bb676ff7237b9b6519b2db3563efb66.zip |
BCEL Java5 Support
Diffstat (limited to 'bcel-builder')
342 files changed, 1393 insertions, 514 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/Constants.java b/bcel-builder/src/org/aspectj/apache/bcel/Constants.java index 1bcf738a3..64500b7dc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/Constants.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/Constants.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel; /** * Constants for the project, mostly defined in the JVM specification. * - * @version $Id: Constants.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Constants.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface Constants { @@ -96,6 +96,12 @@ public interface Constants { public final static short ACC_INTERFACE = 0x0200; public final static short ACC_ABSTRACT = 0x0400; public final static short ACC_STRICT = 0x0800; + + // J5SUPPORT: + public final static short ACC_ANNOTATION = 0x2000; + public final static short ACC_ENUM = 0x4000; + public final static short ACC_BRIDGE = 0x0040; + public final static short ACC_VARARGS = 0x0080; // Applies to classes compiled by new compilers only public final static short ACC_SUPER = 0x0020; @@ -754,16 +760,29 @@ public interface Constants { 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_SIGNATURE = 10; //J5TODO: Is this the same as a Java5 signature attribute? public static final byte ATTR_STACK_MAP = 11; - - public static final short KNOWN_ATTRIBUTES = 12; + + // J5SUPPORT: + public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12; + public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13; + public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14; + public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15; + public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 16; + public static final byte ATTR_ENCLOSING_METHOD = 17; + public static final byte ATTR_ANNOTATION_DEFAULT = 18; + + public static final short KNOWN_ATTRIBUTES = 19; public static final String[] ATTRIBUTE_NAMES = { "SourceFile", "ConstantValue", "Code", "Exceptions", "LineNumberTable", "LocalVariableTable", "InnerClasses", "Synthetic", "Deprecated", - "PMGClass", "Signature", "StackMap" + "PMGClass", "Signature", "StackMap", + // J5SUPPORT: + "RuntimeVisibleAnnotations","RuntimeInvisibleAnnotations", + "RuntimeVisibleParameterAnnotations","RuntimeInvisibleParameterAnnotations", + "LocalVariableTypeTable","EnclosingMethod","AnnotationDefault" }; /** Constants used in the StackMap attribute. diff --git a/bcel-builder/src/org/aspectj/apache/bcel/ExceptionConstants.java b/bcel-builder/src/org/aspectj/apache/bcel/ExceptionConstants.java index d1c5e2485..27844e532 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/ExceptionConstants.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/ExceptionConstants.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel; /** * Exception constants. * - * @version $Id: ExceptionConstants.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ExceptionConstants.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase">E. Haase</A> */ public interface ExceptionConstants { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/Repository.java b/bcel-builder/src/org/aspectj/apache/bcel/Repository.java index f4e54b1bf..658b57b98 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/Repository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/Repository.java @@ -66,18 +66,16 @@ import java.io.*; * @see org.aspectj.apache.bcel.util.Repository * @see org.aspectj.apache.bcel.util.SyntheticRepository * - * @version $Id: Repository.java,v 1.2 2004/11/18 16:00:19 aclement Exp $ + * @version $Id: Repository.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class Repository { - private static org.aspectj.apache.bcel.util.Repository _repository = - null; + private static org.aspectj.apache.bcel.util.Repository _repository = null; /** @return currently used repository instance */ public static org.aspectj.apache.bcel.util.Repository getRepository() { - if (_repository == null) _repository = SyntheticRepository.getInstance(); - + if (_repository == null) _repository = SyntheticRepository.getInstance(); return _repository; } @@ -127,7 +125,7 @@ public abstract class Repository { /** Clear the repository. */ public static void clearCache() { - getRepository().clear(); + getRepository().clear(); } /** @@ -145,14 +143,14 @@ public abstract class Repository { * Remove class with given (fully qualified) name from repository. */ public static void removeClass(String clazz) { - getRepository().removeClass(getRepository().findClass(clazz)); + getRepository().removeClass(getRepository().findClass(clazz)); } /** * Remove given class from repository. */ public static void removeClass(JavaClass clazz) { - getRepository().removeClass(clazz); + getRepository().removeClass(clazz); } /** diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/AccessFlags.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/AccessFlags.java index dfdfaa0ee..cfcee2584 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/AccessFlags.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/AccessFlags.java @@ -60,7 +60,7 @@ import org.aspectj.apache.bcel.Constants; * Super class for all objects that have modifiers like private, final, ... * I.e. classes, fields, and methods. * - * @version $Id: AccessFlags.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: AccessFlags.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class AccessFlags implements java.io.Serializable { @@ -168,4 +168,16 @@ public abstract class AccessFlags implements java.io.Serializable { public final boolean isStrictfp() { return (access_flags & Constants.ACC_STRICT) != 0; } + + public final void isVarargs(boolean flag) { setFlag(Constants.ACC_VARARGS, flag); } + /** J5SUPPORT: Called on methods to determine if they were written with varargs. */ + public final boolean isVarargs() { + return (access_flags & Constants.ACC_VARARGS) != 0; + } + + public final void isBridge(boolean flag) { setFlag(Constants.ACC_BRIDGE, flag); } + /** J5SUPPORT: Called on methods to determine if they are bridge methods */ + public final boolean isBridge() { + return (access_flags & Constants.ACC_BRIDGE) != 0; + } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Attribute.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Attribute.java index ba0bec3b7..8d7deb62e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Attribute.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Attribute.java @@ -55,6 +55,11 @@ package org.aspectj.apache.bcel.classfile; */ import org.aspectj.apache.bcel.Constants; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; + import java.io.*; import java.util.HashMap; @@ -66,7 +71,7 @@ import java.util.HashMap; * <em>Synthetic</em> attributes are supported. The * <em>Unknown</em> attribute stands for non-standard-attributes. * - * @version $Id: Attribute.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Attribute.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ConstantValue * @see SourceFile @@ -158,7 +163,7 @@ public abstract class Attribute implements Cloneable, Node, Serializable { int length; byte tag = Constants.ATTR_UNKNOWN; // Unknown attribute - // Get class name from constant pool via `name_index' indirection + // Get class name from constant pool via 'name_index' indirection name_index = (int)file.readUnsignedShort(); c = (ConstantUtf8)constant_pool.getConstant(name_index, Constants.CONSTANT_Utf8); @@ -221,11 +226,32 @@ public abstract class Attribute implements Cloneable, Node, Serializable { case Constants.ATTR_STACK_MAP: return new StackMap(name_index, length, file, constant_pool); + // J5SUPPORT: + case Constants.ATTR_RUNTIME_VISIBLE_ANNOTATIONS: + return new RuntimeVisibleAnnotations(name_index,length,file,constant_pool); + case Constants.ATTR_RUNTIME_INVISIBLE_ANNOTATIONS: + return new RuntimeInvisibleAnnotations(name_index,length,file,constant_pool); + case Constants.ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS: + return new RuntimeVisibleParameterAnnotations(name_index,length,file,constant_pool); + case Constants.ATTR_RUNTIME_INVISIBLE_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); + case Constants.ATTR_LOCAL_VARIABLE_TYPE_TABLE: + return new LocalVariableTypeTable(name_index,length,file,constant_pool); + case Constants.ATTR_ENCLOSING_METHOD: + return new EnclosingMethod(name_index,length,file,constant_pool); + default: // Never reached throw new IllegalStateException("Ooops! default case reached."); } } + public String getName() { + ConstantUtf8 c = + (ConstantUtf8)constant_pool.getConstant(name_index,Constants.CONSTANT_Utf8); + return c.getBytes(); + } /** * @return Length of attribute field in bytes. */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/AttributeReader.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/AttributeReader.java index 3684b1db9..18c63eb05 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/AttributeReader.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/AttributeReader.java @@ -60,7 +60,7 @@ package org.aspectj.apache.bcel.classfile; * method. These factory objects should implement this interface. * @see Attribute - * @version $Id: AttributeReader.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: AttributeReader.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface AttributeReader { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassFormatException.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassFormatException.java index 5f7820fef..8e374fc5b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassFormatException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassFormatException.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.classfile; * that the file is malformed or otherwise cannot be interpreted as a * class file. * - * @version $Id: ClassFormatException.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ClassFormatException.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ClassFormatException extends RuntimeException { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassParser.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassParser.java index 03cb7d464..a8f6f122d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassParser.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassParser.java @@ -70,7 +70,7 @@ import java.util.zip.*; * JVM specification 1.0</a>. See this paper for * further details about the structure of a bytecode file. * - * @version $Id: ClassParser.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ClassParser.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ClassParser { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Code.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Code.java index 0337f8435..7ace85a59 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Code.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Code.java @@ -69,7 +69,7 @@ import java.io.*; * is used for debugging purposes and <em>LocalVariableTable</em> which * contains information about the local variables. * - * @version $Id: Code.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Code.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute * @see CodeException diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/CodeException.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/CodeException.java index 5b6ef888a..b450186cb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/CodeException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/CodeException.java @@ -62,7 +62,7 @@ import java.io.*; * attribute and is used only there. It contains a range in which a * particular exception handler is active. * - * @version $Id: CodeException.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: CodeException.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Code */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Constant.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Constant.java index ca55fa524..96ea2c603 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Constant.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Constant.java @@ -62,7 +62,7 @@ import java.io.*; * in the constant pool of a class file. The classes keep closely to * the JVM specification. * - * @version $Id: Constant.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Constant.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class Constant implements Cloneable, Node, Serializable { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantCP.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantCP.java index 21ada86ca..7ee7e32dc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantCP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantCP.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.Constants; /** * Abstract super class for Fieldref and Methodref constants. * - * @version $Id: ConstantCP.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantCP.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ConstantFieldref * @see ConstantMethodref diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantClass.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantClass.java index a3c5af367..bd642e016 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantClass.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantClass.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a (external) class. * - * @version $Id: ConstantClass.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantClass.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantDouble.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantDouble.java index ddd5f00d2..ae7c63130 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantDouble.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantDouble.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a Double object. * - * @version $Id: ConstantDouble.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantDouble.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFieldref.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFieldref.java index ce6e652a7..42cc8886f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFieldref.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFieldref.java @@ -60,7 +60,7 @@ import java.io.*; /** * This class represents a constant pool reference to a field. * - * @version $Id: ConstantFieldref.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantFieldref.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ConstantFieldref extends ConstantCP { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFloat.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFloat.java index 0642ebd05..3e97c4dec 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFloat.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantFloat.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a float object. * - * @version $Id: ConstantFloat.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantFloat.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInteger.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInteger.java index cfb8debbe..ab6c44f72 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInteger.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInteger.java @@ -64,7 +64,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to an int object. * - * @version $Id: ConstantInteger.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantInteger.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInterfaceMethodref.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInterfaceMethodref.java index ff933df7b..c072a0e24 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInterfaceMethodref.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantInterfaceMethodref.java @@ -60,7 +60,7 @@ import java.io.*; /** * This class represents a constant pool reference to an interface method. * - * @version $Id: ConstantInterfaceMethodref.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantInterfaceMethodref.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ConstantInterfaceMethodref extends ConstantCP { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantLong.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantLong.java index bd9683b50..4080e700f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantLong.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantLong.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a long object. * - * @version $Id: ConstantLong.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantLong.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantMethodref.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantMethodref.java index 5450f1692..c7a1ec61d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantMethodref.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantMethodref.java @@ -60,7 +60,7 @@ import java.io.*; /** * This class represents a constant pool reference to a method. * - * @version $Id: ConstantMethodref.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantMethodref.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ConstantMethodref extends ConstantCP { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantNameAndType.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantNameAndType.java index 5e95e5592..f6fb51239 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantNameAndType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantNameAndType.java @@ -63,7 +63,7 @@ import java.io.*; * and represents a reference to the name and signature * of a field or method. * - * @version $Id: ConstantNameAndType.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantNameAndType.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantObject.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantObject.java index 316b01e2e..6052ec152 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantObject.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantObject.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.classfile; * This interface denotes those constants that have a "natural" value, * such as ConstantLong, ConstantString, etc.. * - * @version $Id: ConstantObject.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantObject.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantPool.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantPool.java index 6f32c089a..147b66fd6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantPool.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantPool.java @@ -65,7 +65,7 @@ import java.io.*; * programatically should see <a href="../generic/ConstantPoolGen.html"> * ConstantPoolGen</a>. - * @version $Id: ConstantPool.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantPool.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @see Constant * @see org.aspectj.apache.bcel.generic.ConstantPoolGen * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantString.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantString.java index 7816f6b0b..8e8f51899 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantString.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantString.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a String object. * - * @version $Id: ConstantString.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantString.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantUtf8.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantUtf8.java index 2a76bbd84..fa7b1b2de 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantUtf8.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantUtf8.java @@ -62,7 +62,7 @@ import java.io.*; * <A HREF="org.aspectj.apache.bcel.classfile.Constant.html">Constant</A> class * and represents a reference to a Utf8 encoded string. * - * @version $Id: ConstantUtf8.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantUtf8.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantValue.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantValue.java index 1dad172c5..386804824 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantValue.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ConstantValue.java @@ -62,7 +62,7 @@ import java.io.*; * value, i.e., a default value for initializing a class field. * This class is instantiated by the <em>Attribute.readAttribute()</em> method. * - * @version $Id: ConstantValue.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantValue.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Deprecated.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Deprecated.java index 988fc0cad..2c7c9ab50 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Deprecated.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Deprecated.java @@ -62,7 +62,7 @@ import java.io.*; * deprecated method. * It is instantiated from the <em>Attribute.readAttribute()</em> method. * - * @version $Id: Deprecated.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Deprecated.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/DescendingVisitor.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/DescendingVisitor.java index 3e1681d33..7d61dc2d1 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/DescendingVisitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/DescendingVisitor.java @@ -55,13 +55,18 @@ package org.aspectj.apache.bcel.classfile; */ import java.util.Stack; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; + /** * 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,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DescendingVisitor.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DescendingVisitor implements Visitor { @@ -337,6 +342,53 @@ public class DescendingVisitor implements Visitor { stack.pop(); } + // J5SUPPORT: + public void visitEnclosingMethod(EnclosingMethod attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitAnnotationDefault(AnnotationDefault attribute) { + stack.push(attribute); + attribute.accept(visitor); + stack.pop(); + } + + public void visitLocalVariableTypeTable(LocalVariableTypeTable table) { + stack.push(table); + table.accept(visitor); + + LocalVariable[] vars = table.getLocalVariableTypeTable(); + for(int i=0; i < vars.length; i++) + vars[i].accept(this); + stack.pop(); + } + public void visitSourceFile(SourceFile attribute) { stack.push(attribute); attribute.accept(visitor); diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/EmptyVisitor.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/EmptyVisitor.java index c269e9953..1113f0af5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/EmptyVisitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/EmptyVisitor.java @@ -54,6 +54,10 @@ package org.aspectj.apache.bcel.classfile; * <http://www.apache.org/>. */ +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; /** * Visitor with empty method bodies, can be extended and used in conjunction with the @@ -62,7 +66,7 @@ package org.aspectj.apache.bcel.classfile; * By courtesy of David Spencer. * * @see DescendingVisitor - * @version $Id: EmptyVisitor.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: EmptyVisitor.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ * */ public class EmptyVisitor implements Visitor { @@ -100,4 +104,15 @@ public class EmptyVisitor implements Visitor { public void visitUnknown(Unknown obj) {} public void visitStackMap(StackMap obj) {} public void visitStackMapEntry(StackMapEntry obj) {} + + // J5SUPPORT: + public void visitEnclosingMethod(EnclosingMethod obj) {} + public void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations attribute) {} + public void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations attribute) {} + public void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations attribute) {} + public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations attribute) {} + public void visitAnnotationDefault(AnnotationDefault attribute) {} + public void visitLocalVariableTypeTable(LocalVariableTypeTable obj) {} + + } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ExceptionTable.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ExceptionTable.java index 5476c75ed..74577682a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/ExceptionTable.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/ExceptionTable.java @@ -65,7 +65,7 @@ import java.io.*; * attribute using the name <em>Exceptions</em> (which is inconsistent * with the other classes). * - * @version $Id: ExceptionTable.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ExceptionTable.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Code */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Field.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Field.java index 8dad5ef2c..77b267fed 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Field.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Field.java @@ -61,7 +61,7 @@ import java.io.*; * 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,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Field.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class Field extends FieldOrMethod { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/FieldOrMethod.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/FieldOrMethod.java index 5318d527f..647c2211a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/FieldOrMethod.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/FieldOrMethod.java @@ -54,12 +54,17 @@ package org.aspectj.apache.bcel.classfile; * <http://www.apache.org/>. */ import org.aspectj.apache.bcel.Constants; +import org.aspectj.apache.bcel.classfile.annotation.Annotation; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeAnnotations; + import java.io.*; +import java.util.ArrayList; +import java.util.List; /** * Abstract super class for fields and methods. * - * @version $Id: FieldOrMethod.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FieldOrMethod.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class FieldOrMethod extends AccessFlags implements Cloneable, Node { @@ -67,7 +72,12 @@ public abstract class FieldOrMethod extends AccessFlags implements Cloneable, No protected int signature_index; // Points to encoded signature protected int attributes_count;// No. of attributes protected Attribute[] attributes; // Collection of attributes + private Annotation[] annotations; // annotations defined on the field or method protected ConstantPool constant_pool; + + + // Annotations are collected from certain attributes, don't do it more than necessary! + private boolean annotationsOutOfDate = true; FieldOrMethod() {} @@ -141,7 +151,7 @@ public abstract class FieldOrMethod extends AccessFlags implements Cloneable, No /** * @param attributes Collection of object attributes. */ - public final void setAttributes(Attribute[] attributes) { + public void setAttributes(Attribute[] attributes) { this.attributes = attributes; attributes_count = (attributes == null)? 0 : attributes.length; } @@ -220,4 +230,27 @@ public abstract class FieldOrMethod extends AccessFlags implements Cloneable, No return c; } + + /** + * Ensure we have unpacked any attributes that contain annotations. + * We don't remove these annotation attributes from the attributes list, they + * remain there. + */ + public Annotation[] getAnnotations() { + if (annotationsOutOfDate) { + // Find attributes that contain annotation data + Attribute[] attrs = getAttributes(); + List accumulatedAnnotations = new ArrayList(); + for (int i = 0; i < attrs.length; i++) { + Attribute attribute = attrs[i]; + if (attribute instanceof RuntimeAnnotations) { + RuntimeAnnotations runtimeAnnotations = (RuntimeAnnotations)attribute; + accumulatedAnnotations.addAll(runtimeAnnotations.getAnnotations()); + } + } + annotations = (Annotation[])accumulatedAnnotations.toArray(new Annotation[]{}); + annotationsOutOfDate = false; + } + return annotations; + } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClass.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClass.java index bc5705a79..cb57f71af 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClass.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClass.java @@ -62,7 +62,7 @@ import java.io.*; * indices of the inner and outer classes, the name and the attributes * of the inner class. * - * @version $Id: InnerClass.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: InnerClass.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see InnerClasses */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClasses.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClasses.java index 5038b619f..d51a9405c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClasses.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/InnerClasses.java @@ -63,7 +63,7 @@ import java.io.*; * to the source file of this class. * It is instantiated from the <em>Attribute.readAttribute()</em> method. * - * @version $Id: InnerClasses.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: InnerClasses.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java index 5aa423f2d..650767d9e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/JavaClass.java @@ -58,9 +58,13 @@ import org.aspectj.apache.bcel.Constants; import org.aspectj.apache.bcel.util.SyntheticRepository; import org.aspectj.apache.bcel.util.ClassVector; import org.aspectj.apache.bcel.util.ClassQueue; +import org.aspectj.apache.bcel.classfile.annotation.Annotation; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeAnnotations; import org.aspectj.apache.bcel.generic.Type; import java.io.*; +import java.util.ArrayList; +import java.util.List; import java.util.StringTokenizer; /** @@ -73,7 +77,7 @@ import java.util.StringTokenizer; * class file. Those interested in programatically generating classes * should see the <a href="../generic/ClassGen.html">ClassGen</a> class. - * @version $Id: JavaClass.java,v 1.2 2004/11/18 16:00:19 aclement Exp $ + * @version $Id: JavaClass.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ * @see org.aspectj.apache.bcel.generic.ClassGen * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ @@ -92,6 +96,7 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { private Field[] fields; // Fields, i.e., variables of class private Method[] methods; // methods defined in the class private Attribute[] attributes; // attributes defined in the class + private Annotation[] annotations; // annotations defined on the class private byte source = HEAP; // Generated in memory public static final byte HEAP = 1; @@ -101,12 +106,16 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { static boolean debug = false; // Debugging on/off static char sep = '/'; // directory separator + // Annotations are collected from certain attributes, don't do it more than necessary! + private boolean annotationsOutOfDate = true; + /** * In cases where we go ahead and create something, * use the default SyntheticRepository, because we * don't know any better. */ private transient org.aspectj.apache.bcel.util.Repository repository = null; + /** * Constructor gets all contents as arguments. @@ -159,6 +168,7 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { this.fields = fields; this.methods = methods; this.attributes = attributes; + annotationsOutOfDate = true; this.source = source; // Get source file name if available @@ -352,6 +362,23 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { */ public Attribute[] getAttributes() { return attributes; } + public Annotation[] getAnnotations() { + if (annotationsOutOfDate) { + // Find attributes that contain annotation data + Attribute[] attrs = getAttributes(); + List accumulatedAnnotations = new ArrayList(); + for (int i = 0; i < attrs.length; i++) { + Attribute attribute = attrs[i]; + if (attribute instanceof RuntimeAnnotations) { + RuntimeAnnotations runtimeAnnotations = (RuntimeAnnotations)attribute; + accumulatedAnnotations.addAll(runtimeAnnotations.getAnnotations()); + } + } + annotations = (Annotation[])accumulatedAnnotations.toArray(new Annotation[]{}); + annotationsOutOfDate = false; + } + return annotations; + } /** * @return Class name. */ @@ -463,6 +490,7 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { */ public void setAttributes(Attribute[] attributes) { this.attributes = attributes; + annotationsOutOfDate = true; } /** @@ -595,6 +623,12 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { for(int i=0; i < attributes.length; i++) buf.append(indent(attributes[i])); } + + if (annotations!=null && annotations.length>0) { + buf.append("\nAnnotation(s):\n"); + for (int i=0; i<annotations.length; i++) + buf.append(indent(annotations[i])); + } if(fields.length > 0) { buf.append("\n" + fields.length + " fields:\n"); @@ -646,6 +680,10 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { c.attributes = new Attribute[attributes.length]; for(int i=0; i < attributes.length; i++) c.attributes[i] = attributes[i].copy(c.constant_pool); + + //J5SUPPORT: As the annotations exist as attributes against the class, copying + // the attributes will copy the annotations across, so we don't have to + // also copy them individually. return c; } @@ -657,6 +695,22 @@ public class JavaClass extends AccessFlags implements Cloneable, Node { public final boolean isClass() { return (access_flags & Constants.ACC_INTERFACE) == 0; } + + // J5SUPPORT: + /** + * Returns true if this class represents an annotation, i.e. it was a + * 'public @interface blahblah' declaration + */ + public final boolean isAnnotation() { + return (access_flags & Constants.ACC_ANNOTATION) != 0; + } + + /** + * Returns true if this class represents an enum type + */ + public final boolean isEnum() { + return (access_flags & Constants.ACC_ENUM) != 0; + } /** @return returns either HEAP (generated), FILE, or ZIP */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumber.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumber.java index 3510d5a01..06486bc1f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumber.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumber.java @@ -64,7 +64,7 @@ import java.io.Serializable; * the source that corresponds to a relative address in the byte code. This * is used for debugging purposes. * - * @version $Id: LineNumber.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: LineNumber.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see LineNumberTable */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumberTable.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumberTable.java index 10768a8a0..168478b73 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumberTable.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LineNumberTable.java @@ -62,7 +62,7 @@ import java.io.*; * purposes. This attribute is used by the <em>Code</em> attribute. It * contains pairs of PCs and line numbers. * - * @version $Id: LineNumberTable.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LineNumberTable.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Code * @see LineNumber diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariable.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariable.java index 2acbe6e12..2c155149f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariable.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariable.java @@ -61,7 +61,7 @@ import java.io.*; * This class represents a local variable within a method. It contains its * scope, name, signature and index on the method's frame. * - * @version $Id: LocalVariable.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LocalVariable.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see LocalVariableTable */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariableTable.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariableTable.java index 8fe44cf6e..9c09d13e3 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariableTable.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/LocalVariableTable.java @@ -61,7 +61,7 @@ import java.io.*; * This class represents colection of local variables in a * method. This attribute is contained in the <em>Code</em> attribute. * - * @version $Id: LocalVariableTable.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LocalVariableTable.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Code * @see LocalVariable diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Method.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Method.java index dd5a99053..56ff334e5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Method.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Method.java @@ -53,24 +53,38 @@ package org.aspectj.apache.bcel.classfile; * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ +import java.io.DataInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + import org.aspectj.apache.bcel.Constants; +import org.aspectj.apache.bcel.classfile.annotation.Annotation; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; import org.aspectj.apache.bcel.generic.Type; -import java.io.*; /** * This class represents the method info structure, i.e., the representation * for a method in the class. See JVM specification for details. * A method has access flags, a name, a signature and a number of attributes. * - * @version $Id: Method.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Method.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class Method extends FieldOrMethod { + + private boolean parameterAnnotationsOutOfDate; + private RuntimeVisibleParameterAnnotations parameterAnnotationsVis; // annotations on parameters of this method + private RuntimeInvisibleParameterAnnotations parameterAnnotationsInvis; + /** * Empty constructor, all attributes have to be defined via `setXXX' * methods. Use at your own risk. */ - public Method() {} + public Method() { + parameterAnnotationsOutOfDate = true; + } /** * Initialize from another object. Note that both objects use the same @@ -78,6 +92,7 @@ public final class Method extends FieldOrMethod { */ public Method(Method c) { super(c); + parameterAnnotationsOutOfDate = true; } /** @@ -90,6 +105,7 @@ public final class Method extends FieldOrMethod { throws IOException, ClassFormatException { super(file, constant_pool); + parameterAnnotationsOutOfDate = true; } /** @@ -103,6 +119,7 @@ public final class Method extends FieldOrMethod { Attribute[] attributes, ConstantPool constant_pool) { super(access_flags, name_index, signature_index, attributes, constant_pool); + parameterAnnotationsOutOfDate = true; } /** @@ -115,6 +132,11 @@ public final class Method extends FieldOrMethod { public void accept(Visitor v) { v.visitMethod(this); } + + public void setAttributes(Attribute[] attributes) { + parameterAnnotationsOutOfDate = true; + super.setAttributes(attributes); + } /** * @return Code attribute of method, if any @@ -225,4 +247,37 @@ public final class Method extends FieldOrMethod { public Type[] getArgumentTypes() { return Type.getArgumentTypes(getSignature()); } + + private void ensureParameterAnnotationsUnpacked() { + if (parameterAnnotationsOutOfDate) { + // Find attributes that contain annotation data + Attribute[] attrs = getAttributes(); + List accumulatedAnnotations = new ArrayList(); + + for (int i = 0; i < attrs.length; i++) { + Attribute attribute = attrs[i]; + if (attribute instanceof RuntimeVisibleParameterAnnotations) { + parameterAnnotationsVis = (RuntimeVisibleParameterAnnotations)attribute; + } + if (attribute instanceof RuntimeInvisibleParameterAnnotations) { + parameterAnnotationsInvis = (RuntimeInvisibleParameterAnnotations)attribute; + } + } + parameterAnnotationsOutOfDate = false; + } + } + + public Annotation[] getAnnotationsOnParameter(int i) { + ensureParameterAnnotationsUnpacked(); + + Annotation[] visibleOnes = new Annotation[0]; + if (parameterAnnotationsVis!=null) visibleOnes = parameterAnnotationsVis.getAnnotationsOnParameter(i); + Annotation[] invisibleOnes = new Annotation[0]; + if (parameterAnnotationsInvis!=null) invisibleOnes = parameterAnnotationsInvis.getAnnotationsOnParameter(i); + Annotation[] complete = new Annotation[visibleOnes.length+invisibleOnes.length]; + System.arraycopy(visibleOnes,0,complete,0,visibleOnes.length); + System.arraycopy(invisibleOnes,0,complete,visibleOnes.length,invisibleOnes.length); + return complete; + } + } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Node.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Node.java index 6b0ceefa8..11ee287c2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Node.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Node.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.classfile; /** * Denote class to have an accept method(); * - * @version $Id: Node.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Node.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface Node { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/PMGClass.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/PMGClass.java index d66cbfad8..2587dfa53 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/PMGClass.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/PMGClass.java @@ -62,7 +62,7 @@ import java.io.*; * to a <a href="http://www.inf.fu-berlin.de/~bokowski/pmgjava/index.html">PMG</a> * attribute. * - * @version $Id: PMGClass.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: PMGClass.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Signature.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Signature.java index b34e22e6b..c55a00919 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Signature.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Signature.java @@ -61,7 +61,7 @@ import java.io.*; * This class is derived from <em>Attribute</em> and represents a reference * to a <href="http://wwwipd.ira.uka.de/~pizza/gj/">GJ</a> attribute. * - * @version $Id: Signature.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Signature.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/SourceFile.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/SourceFile.java index 9ff14bc5f..ee93d6321 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/SourceFile.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/SourceFile.java @@ -63,7 +63,7 @@ import java.io.*; * should appear per classfile. The intention of this class is that it is * instantiated from the <em>Attribute.readAttribute()</em> method. * - * @version $Id: SourceFile.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: SourceFile.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java index 2a3970b61..df976fc69 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMap.java @@ -66,7 +66,7 @@ import java.io.*; * within the Code attribute of a method. See CLDC specification * §5.3.1.2 * - * @version $Id: StackMap.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: StackMap.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Code * @see StackMapEntry diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java index 903094571..d6f2d1637 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapEntry.java @@ -54,16 +54,15 @@ package org.aspectj.apache.bcel.classfile; * <http://www.apache.org/>. */ -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; +import org.aspectj.apache.bcel.Constants; +import java.io.*; /** * 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: StackMapEntry.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see StackMap * @see StackMapType diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapType.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapType.java index dd205b6fb..0dd072d3b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/StackMapType.java @@ -61,7 +61,7 @@ import java.io.*; * This class represents the type of a local variable or item on stack * used in the StackMap entries. * - * @version $Id: StackMapType.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: StackMapType.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see StackMapEntry * @see StackMap diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Synthetic.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Synthetic.java index 8c0088cea..235c4bb4a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Synthetic.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Synthetic.java @@ -66,7 +66,7 @@ import java.io.*; * is intended to be instantiated from the * <em>Attribute.readAttribute()</em> method. * - * @version $Id: Synthetic.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Synthetic.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Attribute */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Unknown.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Unknown.java index 3059a0e30..851d18214 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Unknown.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Unknown.java @@ -69,7 +69,7 @@ import java.util.*; * org.aspectj.apache.bcel.classfile.AttributeReader)">Attribute.addAttributeReader</a>. * - * @version $Id: Unknown.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Unknown.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @see org.aspectj.apache.bcel.classfile.Attribute * @see org.aspectj.apache.bcel.classfile.AttributeReader * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> @@ -170,7 +170,7 @@ public final class Unknown extends Attribute { /** * @return name of attribute. */ - public final String getName() { return name; } + public String getName() { return name; } /** * @param bytes. diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Utility.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Utility.java index f73185b10..21b87a1cd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Utility.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Utility.java @@ -55,15 +55,25 @@ package org.aspectj.apache.bcel.classfile; */ import org.aspectj.apache.bcel.Constants; +import org.aspectj.apache.bcel.classfile.annotation.Annotation; +import org.aspectj.apache.bcel.classfile.annotation.ElementNameValuePair; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; +import org.aspectj.apache.bcel.generic.ConstantPoolGen; +import org.aspectj.apache.bcel.generic.annotation.AnnotationGen; import org.aspectj.apache.bcel.util.ByteSequence; import java.io.*; import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import java.util.zip.*; /** * Utility functions that do not really belong to any class in particular. * - * @version $Id: Utility.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Utility.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class Utility { @@ -823,11 +833,11 @@ public abstract class Utility { * @return Java type declaration * @throws ClassFormatException */ + // J5TODO: This will have problems with nest generic types...(but then I think we all will) public static final String signatureToString(String signature, boolean chopit) { consumed_chars = 1; // This is the default, read just one char like `B' - try { switch(signature.charAt(0)) { case 'B' : return "byte"; @@ -838,14 +848,26 @@ public abstract class Utility { case 'J' : return "long"; case 'L' : { // Full class name - int index = signature.indexOf(';'); // Look for closing `;' + int index = signature.indexOf(';'); // Look for closing `;' + // Jump to the correct ';' + if (index!=-1 && + signature.length()>index+1 && + signature.charAt(index+1)=='>') index = index+2; if(index < 0) throw new ClassFormatException("Invalid signature: " + signature); - consumed_chars = index + 1; // "Lblabla;" `L' and `;' are removed + int genericStart = signature.indexOf('<'); + int genericEnd = signature.indexOf('>'); + if (genericStart !=-1) { + return compactClassName(signature.substring(1,genericStart)+"<"+ + signatureToString(signature.substring(genericStart+1,genericEnd),chopit)+">",chopit); + } else { + + consumed_chars = index + 1; // "Lblabla;" `L' and `;' are removed - return compactClassName(signature.substring(1, index), chopit); + return compactClassName(signature.substring(1, index), chopit); + } } case 'S' : return "short"; @@ -872,7 +894,7 @@ public abstract class Utility { Utility.consumed_chars += consumed_chars; return type + brackets.toString(); } - + case 'V' : return "void"; default : throw new ClassFormatException("Invalid signature: `" + @@ -1391,4 +1413,168 @@ public abstract class Utility { return buf.toString(); } + + public static List getListOfAnnotationNames(Annotation a) { + List l = a.getValues(); + List names = new ArrayList(); + for (Iterator i = l.iterator(); i.hasNext();) { + ElementNameValuePair element = (ElementNameValuePair) i.next(); + names.add(element.getNameString()); + } + return names; + } + + /** + * Converts a list of AnnotationGen objects into a set of attributes + * that can be attached to the class file. + * @param cp The constant pool gen where we can create the necessary name refs + * @param vec A list of AnnotationGen objects + */ + public static Attribute[] getAnnotationAttributes(ConstantPoolGen cp,List vec) { + + if (vec.size()==0) return null; + + try { + int countVisible = 0; + int countInvisible = 0; + + // put the annotations in the right output stream + for (int i=0; i<vec.size(); i++) { + AnnotationGen a = (AnnotationGen)vec.get(i); + if (a.isRuntimeVisible()) countVisible++; + else countInvisible++; + } + + ByteArrayOutputStream rvaBytes = new ByteArrayOutputStream(); + ByteArrayOutputStream riaBytes = new ByteArrayOutputStream(); + DataOutputStream rvaDos = new DataOutputStream(rvaBytes); + DataOutputStream riaDos = new DataOutputStream(riaBytes); + + rvaDos.writeShort(countVisible); + riaDos.writeShort(countInvisible); + + // put the annotations in the right output stream + for (int i=0; i<vec.size(); i++) { + AnnotationGen a = (AnnotationGen)vec.get(i); + if (a.isRuntimeVisible()) a.dump(rvaDos); + else a.dump(riaDos); + } + + rvaDos.close(); + riaDos.close(); + + byte[] rvaData = rvaBytes.toByteArray(); + byte[] riaData = riaBytes.toByteArray(); + + int rvaIndex = -1; + int riaIndex = -1; + + if (rvaData.length>2) rvaIndex = cp.addUtf8("RuntimeVisibleAnnotations"); + if (riaData.length>2) riaIndex = cp.addUtf8("RuntimeInvisibleAnnotations"); + + List newAttributes = new ArrayList(); + if (rvaData.length>2) { + newAttributes.add( + new RuntimeVisibleAnnotations(rvaIndex,rvaData.length,rvaData,cp.getConstantPool())); + } + if (riaData.length>2) { + newAttributes.add( + new RuntimeInvisibleAnnotations(riaIndex,riaData.length,riaData,cp.getConstantPool())); + } + + return (Attribute[])newAttributes.toArray(new Attribute[]{}); + } catch (IOException e) { + System.err.println("IOException whilst processing annotations"); + e.printStackTrace(); + } + return null; + } + + /** + * Annotations against a class are stored in one of four attribute kinds: + * - RuntimeVisibleParameterAnnotations + * - RuntimeInvisibleParameterAnnotations + */ + public static Attribute[] getParameterAnnotationAttributes(ConstantPoolGen cp,List[] /*Array of lists, array size depends on #params */ vec) { + + int visCount[] = new int[vec.length]; + int totalVisCount = 0; + int invisCount[] = new int[vec.length]; + int totalInvisCount = 0; + try { + + for (int i=0; i<vec.length; i++) { + List l = vec[i]; + if (l!=null) { + for (Iterator iter = l.iterator(); iter.hasNext();) { + AnnotationGen element = (AnnotationGen) iter.next(); + if (element.isRuntimeVisible()) {visCount[i]++;totalVisCount++;} + else {invisCount[i]++;totalInvisCount++;} + } + } + } + + // Lets do the visible ones + ByteArrayOutputStream rvaBytes = new ByteArrayOutputStream(); + DataOutputStream rvaDos = new DataOutputStream(rvaBytes); + rvaDos.writeByte(vec.length); // First goes number of parameters + + for (int i=0; i<vec.length; i++) { + rvaDos.writeShort(visCount[i]); + if (visCount[i]>0) { + List l = vec[i]; + for (Iterator iter = l.iterator(); iter.hasNext();) { + AnnotationGen element = (AnnotationGen) iter.next(); + if (element.isRuntimeVisible()) element.dump(rvaDos); + } + } + } + rvaDos.close(); + + // Lets do the invisible ones + ByteArrayOutputStream riaBytes = new ByteArrayOutputStream(); + DataOutputStream riaDos = new DataOutputStream(riaBytes); + riaDos.writeByte(vec.length); // First goes number of parameters + + for (int i=0; i<vec.length; i++) { + riaDos.writeShort(invisCount[i]); + if (invisCount[i]>0) { + List l = vec[i]; + for (Iterator iter = l.iterator(); iter.hasNext();) { + AnnotationGen element = (AnnotationGen) iter.next(); + if (!element.isRuntimeVisible()) element.dump(riaDos); + } + } + } + riaDos.close(); + + byte[] rvaData = rvaBytes.toByteArray(); + byte[] riaData = riaBytes.toByteArray(); + + int rvaIndex = -1; + int riaIndex = -1; + + if (totalVisCount>0) rvaIndex = cp.addUtf8("RuntimeVisibleParameterAnnotations"); + if (totalInvisCount>0) riaIndex = cp.addUtf8("RuntimeInvisibleParameterAnnotations"); + + List newAttributes = new ArrayList(); + + if (totalVisCount>0) { + newAttributes.add( + new RuntimeVisibleParameterAnnotations(rvaIndex,rvaData.length,rvaData,cp.getConstantPool())); + } + + + if (totalInvisCount>0) { + newAttributes.add( + new RuntimeInvisibleParameterAnnotations(riaIndex,riaData.length,riaData,cp.getConstantPool())); + } + + return (Attribute[])newAttributes.toArray(new Attribute[]{}); + } catch (IOException e) { + System.err.println("IOException whilst processing parameter annotations"); + e.printStackTrace(); + } + return null; + } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Visitor.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Visitor.java index 6b351cded..525512d31 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/Visitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/Visitor.java @@ -1,5 +1,10 @@ package org.aspectj.apache.bcel.classfile; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisibleParameterAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisibleParameterAnnotations; + /* ==================================================================== * The Apache Software License, Version 1.1 * @@ -62,7 +67,7 @@ package org.aspectj.apache.bcel.classfile; * Implemented by wish of * <A HREF="http://www.inf.fu-berlin.de/~bokowski">Boris Bokowski</A>. * - * @version $Id: Visitor.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Visitor.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface Visitor { @@ -98,4 +103,13 @@ public interface Visitor { public void visitUnknown(Unknown obj); public void visitStackMap(StackMap obj); public void visitStackMapEntry(StackMapEntry obj); + + // Java5 + public void visitEnclosingMethod(EnclosingMethod obj); + public void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations obj); + public void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations obj); + public void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations obj); + public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations obj); + public void visitAnnotationDefault(AnnotationDefault obj); + public void visitLocalVariableTypeTable(LocalVariableTypeTable obj); } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/package.html b/bcel-builder/src/org/aspectj/apache/bcel/classfile/package.html index a3350329c..ef4006e36 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:11 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:18 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/AALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/AALOAD.java index dc7b0b605..1cc20e33a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/AALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/AALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * AALOAD - Load reference from array * <PRE>Stack: ..., arrayref, index -> value</PRE> * - * @version $Id: AALOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: AALOAD.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class AALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/AASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/AASTORE.java index a90f1e6ab..35818a756 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/AASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/AASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * AASTORE - Store into reference array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: AASTORE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: AASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class AASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ACONST_NULL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ACONST_NULL.java index 2994f5264..596264631 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ACONST_NULL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ACONST_NULL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ACONST_NULL - Push null reference * <PRE>Stack: ... -> ..., null</PRE> * - * @version $Id: ACONST_NULL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ACONST_NULL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ACONST_NULL extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ALOAD.java index e3f991514..9cb2dd121 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ALOAD - Load reference from local variable * <PRE>Stack: ... -> ..., objectref</PRE> * - * @version $Id: ALOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ALOAD.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ALOAD extends LoadInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ANEWARRAY.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ANEWARRAY.java index c62e7109e..8db7270c2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ANEWARRAY.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ANEWARRAY.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * ANEWARRAY - Create new array of references * <PRE>Stack: ..., count -> ..., arrayref</PRE> * - * @version $Id: ANEWARRAY.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ANEWARRAY.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ANEWARRAY extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ARETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ARETURN.java index 11a194834..9425440f5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ARETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ARETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ARETURN - Return reference from method * <PRE>Stack: ..., objectref -> <empty></PRE> * - * @version $Id: ARETURN.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ARETURN.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ARETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ARRAYLENGTH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ARRAYLENGTH.java index e407ddd6a..64e079afb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ARRAYLENGTH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ARRAYLENGTH.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ARRAYLENGTH - Get length of array * <PRE>Stack: ..., arrayref -> ..., length</PRE> * - * @version $Id: ARRAYLENGTH.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ARRAYLENGTH.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ARRAYLENGTH extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ASTORE.java index 7730350dd..8d7db57d7 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ASTORE - Store reference into local variable * <PRE>Stack ..., objectref -> ... </PRE> * - * @version $Id: ASTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ASTORE.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ASTORE extends StoreInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ATHROW.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ATHROW.java index 4bfd6185d..8beffc698 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ATHROW.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ATHROW.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ATHROW - Throw exception * <PRE>Stack: ..., objectref -> objectref</PRE> * - * @version $Id: ATHROW.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ATHROW.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ATHROW extends Instruction implements UnconditionalBranch, ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/AllocationInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/AllocationInstruction.java index ef627ae2e..c3cea122f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/AllocationInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/AllocationInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Denote family of instructions that allocates space in the heap. * - * @version $Id: AllocationInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: AllocationInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface AllocationInstruction {} diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArithmeticInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArithmeticInstruction.java index 467405b7e..1e1c602ee 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArithmeticInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArithmeticInstruction.java @@ -57,7 +57,7 @@ import org.aspectj.apache.bcel.Constants; /** * Super class for the family of arithmetic instructions. * - * @version $Id: ArithmeticInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ArithmeticInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class ArithmeticInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayInstruction.java index ea5d2ea7d..26aae716a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Super class for instructions dealing with array access such as IALOAD. * - * @version $Id: ArrayInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ArrayInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class ArrayInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayType.java index ce2fa07c9..e937a7c1d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ArrayType.java @@ -58,7 +58,7 @@ import org.aspectj.apache.bcel.Constants; /** * Denotes array type, such as int[][] * - * @version $Id: ArrayType.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ArrayType.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ArrayType extends ReferenceType { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BALOAD.java index 0e24bcdc8..ac55a2640 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * BALOAD - Load byte or boolean from array * <PRE>Stack: ..., arrayref, index -> ..., value</PRE> * - * @version $Id: BALOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: BALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class BALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BASTORE.java index 744b8f6d1..6822be233 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * BASTORE - Store into byte or boolean array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: BASTORE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class BASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BIPUSH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BIPUSH.java index 664f4250e..699012316 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BIPUSH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BIPUSH.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * * <PRE>Stack: ... -> ..., value</PRE> * - * @version $Id: BIPUSH.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BIPUSH.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class BIPUSH extends Instruction implements ConstantPushInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BREAKPOINT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BREAKPOINT.java index 729cf07ab..93cb32278 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BREAKPOINT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BREAKPOINT.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * BREAKPOINT, JVM dependent, ignored by default * - * @version $Id: BREAKPOINT.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BREAKPOINT.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class BREAKPOINT extends Instruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BasicType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BasicType.java index 0257b76e8..d4a57a05f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BasicType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BasicType.java @@ -58,7 +58,7 @@ import org.aspectj.apache.bcel.Constants; /** * Denotes basic type such as int. * - * @version $Id: BasicType.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: BasicType.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class BasicType extends Type { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchHandle.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchHandle.java index 9f28acdcf..eed275112 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchHandle.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchHandle.java @@ -63,7 +63,7 @@ package org.aspectj.apache.bcel.generic; * @see InstructionHandle * @see Instruction * @see InstructionList - * @version $Id: BranchHandle.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BranchHandle.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class BranchHandle extends InstructionHandle { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchInstruction.java index 12c989cab..c81508076 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/BranchInstruction.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * LOOKUPSWITCH and TABLESWITCH. * * @see InstructionList - * @version $Id: BranchInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BranchInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class BranchInstruction extends Instruction implements InstructionTargeter { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CALOAD.java index 13bc7080f..c63464260 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * CALOAD - Load char from array * <PRE>Stack: ..., arrayref, index -> ..., value</PRE> * - * @version $Id: CALOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: CALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class CALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CASTORE.java index 36c86d46d..4cf608c9e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * CASTORE - Store into char array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: CASTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: CASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class CASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CHECKCAST.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CHECKCAST.java index e99e3fb38..22a16b0e7 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CHECKCAST.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CHECKCAST.java @@ -58,7 +58,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * CHECKCAST - Check whether object is of given type * <PRE>Stack: ..., objectref -> ..., objectref</PRE> * - * @version $Id: CHECKCAST.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: CHECKCAST.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class CHECKCAST extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CPInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CPInstruction.java index 3a43d37e9..75903ae22 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CPInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CPInstruction.java @@ -54,13 +54,13 @@ package org.aspectj.apache.bcel.generic; * <http://www.apache.org/>. */ -import java.io.DataOutputStream; -import java.io.IOException; - +import java.io.*; +import org.aspectj.apache.bcel.util.ByteSequence; +import org.aspectj.apache.bcel.Constants; 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.util.ByteSequence; +import org.aspectj.apache.bcel.classfile.tests.*; /** * Abstract super class for instructions that use an index into the @@ -70,7 +70,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * @see LDC * @see INVOKEVIRTUAL * - * @version $Id: CPInstruction.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: CPInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class CPInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java index 488ded7a6..8d2c48e92 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGen.java @@ -55,16 +55,29 @@ package org.aspectj.apache.bcel.generic; */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.AccessFlags; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.ConstantPool; +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.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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ClassGen extends AccessFlags implements Cloneable { @@ -81,6 +94,8 @@ public class ClassGen extends AccessFlags implements Cloneable { private ArrayList method_vec = new ArrayList(); private ArrayList attribute_vec = new ArrayList(); private ArrayList interface_vec = new ArrayList(); + private ArrayList annotation_vec= new ArrayList(); + private boolean unpackedAnnotations = false; /** Convenience constructor to set up some important values initially. * @@ -141,7 +156,9 @@ public class ClassGen extends AccessFlags implements Cloneable { major = clazz.getMajor(); minor = clazz.getMinor(); - Attribute[] attributes = clazz.getAttributes(); + Attribute[] attributes = clazz.getAttributes(); + // J5TODO: Could make unpacking lazy, done on first reference + AnnotationGen[] annotations = unpackAnnotations(attributes); Method[] methods = clazz.getMethods(); Field[] fields = clazz.getFields(); String[] interfaces = clazz.getInterfaceNames(); @@ -149,15 +166,45 @@ public class ClassGen extends AccessFlags implements Cloneable { 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 < attributes.length; i++) { + // Dont add attributes for annotations as those will have been unpacked + if (annotations.length==0) { + addAttribute(attributes[i]); + } else if (!attributes[i].getName().equals("RuntimeVisibleAnnotations") && + !attributes[i].getName().equals("RuntimeInvisibleAnnotations")) { + addAttribute(attributes[i]); + } + } + for(int i=0; i < annotations.length; i++) + addAnnotation(annotations[i]); - for(int i=0; i < methods.length; i++) - addMethod(methods[i]); + for(int i=0; i < methods.length; i++) { + Method m = methods[i]; + addMethod(m); + } for(int i=0; i < fields.length; i++) addField(fields[i]); } + + /** + * Look for attributes representing annotations and unpack them. + */ + private AnnotationGen[] unpackAnnotations(Attribute[] attrs) { + List /*AnnotationGen*/ annotationGenObjs = new ArrayList(); + for (int i = 0; i < attrs.length; i++) { + Attribute attr = attrs[i]; + if (attr instanceof RuntimeVisibleAnnotations) { + RuntimeVisibleAnnotations rva = (RuntimeVisibleAnnotations)attr; + List annos = rva.getAnnotations(); + for (Iterator iter = annos.iterator(); iter.hasNext();) { + Annotation a = (Annotation) iter.next(); + annotationGenObjs.add(new AnnotationGen(a,getConstantPool())); + } + } + } + return (AnnotationGen[])annotationGenObjs.toArray(new AnnotationGen[]{}); + } /** * @return the (finally) built up Java class object. @@ -166,7 +213,17 @@ public class ClassGen extends AccessFlags implements Cloneable { int[] interfaces = getInterfaces(); Field[] fields = getFields(); Method[] methods = getMethods(); - Attribute[] attributes = getAttributes(); + + Attribute[] attributes = null; + if (annotation_vec.size()==0) { + attributes = getAttributes(); + } else { + // TODO: Sometime later, trash any attributes called 'RuntimeVisibleAnnotations' or 'RuntimeInvisibleAnnotations' + Attribute[] annAttributes = Utility.getAnnotationAttributes(cp,annotation_vec); + attributes = new Attribute[attribute_vec.size()+annAttributes.length]; + attribute_vec.toArray(attributes); + System.arraycopy(annAttributes,0,attributes,attribute_vec.size(),annAttributes.length); + } // Must be last since the above calls may still add something to it ConstantPool cp = this.cp.getFinalConstantPool(); @@ -222,6 +279,7 @@ public class ClassGen extends AccessFlags implements Cloneable { */ public void addAttribute(Attribute a) { attribute_vec.add(a); } + public void addAnnotation(AnnotationGen a) { annotation_vec.add(a); } /** * Add a method to this class. * @param m method to add @@ -244,6 +302,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(); addMethod(mg.getMethod()); } @@ -284,6 +343,7 @@ public class ClassGen extends AccessFlags implements Cloneable { * @param a attribute to remove */ public void removeAttribute(Attribute a) { attribute_vec.remove(a); } + public void removeAnnotation(AnnotationGen a) {annotation_vec.remove(a);} /** * Remove a method from this class. @@ -390,7 +450,14 @@ public class ClassGen extends AccessFlags implements Cloneable { attribute_vec.toArray(attributes); return attributes; } - + + // J5TODO: Should we make calling unpackAnnotations() lazy and put it in here? + public AnnotationGen[] getAnnotations() { + AnnotationGen[] annotations = new AnnotationGen[annotation_vec.size()]; + annotation_vec.toArray(annotations); + return annotations; + } + public ConstantPoolGen getConstantPool() { return cp; } public void setConstantPool(ConstantPoolGen constant_pool) { cp = constant_pool; @@ -448,4 +515,20 @@ public class ClassGen extends AccessFlags implements Cloneable { return null; } } + + // J5SUPPORT: + + /** + * Returns true if this class represents an annotation type + */ + public final boolean isAnnotation() { + return (access_flags & Constants.ACC_ANNOTATION) != 0; + } + + /** + * Returns true if this class represents an enum type + */ + public final boolean isEnum() { + return (access_flags & Constants.ACC_ENUM) != 0; + } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGenException.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGenException.java index 1a6dc718f..827da3080 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGenException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassGenException.java @@ -58,7 +58,7 @@ package org.aspectj.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,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ClassGenException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ClassGenException extends RuntimeException { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassObserver.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassObserver.java index 9003591ff..896d98abc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassObserver.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ClassObserver.java @@ -58,7 +58,7 @@ package org.aspectj.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,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ClassObserver.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface ClassObserver { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CodeExceptionGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CodeExceptionGen.java index 137d496b8..b3bb16450 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CodeExceptionGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CodeExceptionGen.java @@ -54,7 +54,9 @@ 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 @@ -65,7 +67,7 @@ import org.aspectj.apache.bcel.classfile.CodeException; * 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: CodeExceptionGen.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see MethodGen * @see CodeException diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/CompoundInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/CompoundInstruction.java index 3e248b67a..480560d04 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/CompoundInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/CompoundInstruction.java @@ -65,7 +65,7 @@ package org.aspectj.apache.bcel.generic; * The interface provides the possibilty for the user to write * `templates' or `macros' for such reuseable code patterns. * - * @version $Id: CompoundInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: CompoundInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see PUSH * @see SWITCH diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPoolGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPoolGen.java index d2b7aabf6..ca2632ba0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPoolGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPoolGen.java @@ -55,7 +55,22 @@ package org.aspectj.apache.bcel.generic; */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantCP; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantDouble; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantFloat; +import org.aspectj.apache.bcel.classfile.ConstantInteger; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantLong; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +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; /** @@ -68,7 +83,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.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantPoolGen.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constant */ @@ -263,7 +278,9 @@ public class ConstantPoolGen implements java.io.Serializable { * @return index of entry */ public int addClass(ObjectType type) { + //BCELBUG:? Should this we getClassName() - perhaps it should be getSignature() ?!? return addClass(type.getClassName()); +// return addClass(type.getSignature()); } /** diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPushInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPushInstruction.java index de766b9b6..ca4a9ae3b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPushInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConstantPushInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes a push instruction that produces a literal on the stack * such as SIPUSH, BIPUSH, ICONST, etc. * - * @version $Id: ConstantPushInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConstantPushInstruction.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ICONST diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConversionInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConversionInstruction.java index 0e1a0cafb..e1504b1ff 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ConversionInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ConversionInstruction.java @@ -57,7 +57,7 @@ import org.aspectj.apache.bcel.Constants; /** * Super class for the x2y family of instructions. * - * @version $Id: ConversionInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ConversionInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class ConversionInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2F.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2F.java index 33f409009..73c49e031 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2F.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2F.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * D2F - Convert double to float * <PRE>Stack: ..., value.word1, value.word2 -> ..., result</PRE> * - * @version $Id: D2F.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: D2F.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class D2F extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2I.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2I.java index f62c3cef4..9be3cd61c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2I.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2I.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * D2I - Convert double to int * <PRE>Stack: ..., value.word1, value.word2 -> ..., result</PRE> * - * @version $Id: D2I.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: D2I.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class D2I extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2L.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2L.java index 0a05d1b16..4c939c895 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/D2L.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/D2L.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * D2L - Convert double to long * <PRE>Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: D2L.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: D2L.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class D2L extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DADD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DADD.java index 6b00cd97a..b43164aea 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DADD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DADD.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result1.word2 * - * @version $Id: DADD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DADD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DADD extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DALOAD.java index 177dcda8e..6af53ea90 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DALOAD - Load double from array * <PRE>Stack: ..., arrayref, index -> ..., result.word1, result.word2</PRE> * - * @version $Id: DALOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DASTORE.java index aa513aa91..6b1ced1d6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DASTORE - Store into double array * <PRE>Stack: ..., arrayref, index, value.word1, value.word2 -> ...</PRE> * - * @version $Id: DASTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPG.java index 4bb5d9d8d..bd176508d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPG.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result * - * @version $Id: DCMPG.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DCMPG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DCMPG extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPL.java index 0f5c87e08..32374a021 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCMPL.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result * - * @version $Id: DCMPL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DCMPL.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DCMPL extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCONST.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCONST.java index 767d9570a..c875af8ee 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DCONST.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DCONST.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ... -> ..., </PRE> * - * @version $Id: DCONST.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DCONST.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DCONST extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DDIV.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DDIV.java index 761b0ea63..f7f312333 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DDIV.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DDIV.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: DDIV.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DDIV.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DDIV extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DLOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DLOAD.java index 16548c9d3..873020cd8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DLOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DLOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DLOAD - Load double from local variable * <PRE>Stack ... -> ..., result.word1, result.word2</PRE> * - * @version $Id: DLOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DLOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DLOAD extends LoadInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DMUL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DMUL.java index 55aa7e023..b45981d8b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DMUL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DMUL.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: DMUL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DMUL.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DMUL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DNEG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DNEG.java index 5e2b478e4..89fc8dbed 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DNEG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DNEG.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DNEG - Negate double * <PRE>Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: DNEG.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DNEG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DNEG extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DREM.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DREM.java index 8cc0c71ad..fc99c493d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DREM.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DREM.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: DREM.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DREM.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DREM extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DRETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DRETURN.java index a1e27affc..01460af4a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DRETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DRETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DRETURN - Return double from method * <PRE>Stack: ..., value.word1, value.word2 -> <empty></PRE> * - * @version $Id: DRETURN.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DRETURN.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DRETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DSTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DSTORE.java index 45316fc2a..6e4d600b1 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DSTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DSTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DSTORE - Store double into local variable * <pre>Stack: ..., value.word1, value.word2 -> ... </PRE> * - * @version $Id: DSTORE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DSTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DSTORE extends StoreInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DSUB.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DSUB.java index 79275e42c..5beb0ca73 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DSUB.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DSUB.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: DSUB.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DSUB.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DSUB extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP.java index 8caef08d9..98ec90424 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP - Duplicate top operand stack word * <PRE>Stack: ..., word -> ..., word, word</PRE> * - * @version $Id: DUP.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DUP.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP extends StackInstruction implements PushInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2.java index a758dcded..a4d84dacc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP2 - Duplicate two top operand stack words * <PRE>Stack: ..., word2, word1 -> ..., word2, word1, word2, word1</PRE> * - * @version $Id: DUP2.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DUP2.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP2 extends StackInstruction implements PushInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X1.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X1.java index d5cd70823..047c2fd41 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X1.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X1.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP2_X1 - Duplicate two top operand stack words and put three down * <PRE>Stack: ..., word3, word2, word1 -> ..., word2, word1, word3, word2, word1</PRE> * - * @version $Id: DUP2_X1.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DUP2_X1.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP2_X1 extends StackInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X2.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X2.java index 3cf9d7c9a..ed62fa4ab 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X2.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP2_X2.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP2_X2 - Duplicate two top operand stack words and put four down * <PRE>Stack: ..., word4, word3, word2, word1 -> ..., word2, word1, word4, word3, word2, word1</PRE> * - * @version $Id: DUP2_X2.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DUP2_X2.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP2_X2 extends StackInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X1.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X1.java index 4bf266719..46494c028 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X1.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X1.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP_X1 - Duplicate top operand stack word and put two down * <PRE>Stack: ..., word2, word1 -> ..., word1, word2, word1</PRE> * - * @version $Id: DUP_X1.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DUP_X1.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP_X1 extends StackInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X2.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X2.java index fb3649d7c..5042b8815 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X2.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/DUP_X2.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * DUP_X2 - Duplicate top operand stack word and put three down * <PRE>Stack: ..., word3, word2, word1 -> ..., word1, word3, word2, word1</PRE> * - * @version $Id: DUP_X2.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: DUP_X2.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class DUP_X2 extends StackInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/EmptyVisitor.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/EmptyVisitor.java index 6c53c6db4..ca983400b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/EmptyVisitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/EmptyVisitor.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Supplies empty method bodies to be overridden by subclasses. * - * @version $Id: EmptyVisitor.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: EmptyVisitor.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class EmptyVisitor implements Visitor { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ExceptionThrower.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ExceptionThrower.java index 6c5ad3b21..5e94141b2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ExceptionThrower.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ExceptionThrower.java @@ -71,7 +71,7 @@ package org.aspectj.apache.bcel.generic; * "Throwable" object; so this term is equally used for "Exception" * and "Error" objects. * - * @version $Id: ExceptionThrower.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ExceptionThrower.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase">Enver Haase</A> */ public interface ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2D.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2D.java index 6683e4e79..165c02b49 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2D.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2D.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * F2D - Convert float to double * <PRE>Stack: ..., value -> ..., result.word1, result.word2</PRE> * - * @version $Id: F2D.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: F2D.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class F2D extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2I.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2I.java index a95c27608..3f478a7f0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2I.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2I.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * F2I - Convert float to int * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: F2I.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: F2I.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class F2I extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2L.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2L.java index 3649e7fde..6541ff49a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/F2L.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/F2L.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * F2L - Convert float to long * <PRE>Stack: ..., value -> ..., result.word1, result.word2</PRE> * - * @version $Id: F2L.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: F2L.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class F2L extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FADD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FADD.java index b99867bcf..7c97cf714 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FADD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FADD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FADD - Add floats * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: FADD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FADD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FADD extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FALOAD.java index fbc923e65..7814d971d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FALOAD - Load float from array * <PRE>Stack: ..., arrayref, index -> ..., value</PRE> * - * @version $Id: FALOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FASTORE.java index f472537eb..e27ffecae 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FASTORE - Store into float array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: FASTORE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPG.java index 7d15765a0..606d1fac2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPG.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FCMPG - Compare floats: value1 > value2 * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: FCMPG.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FCMPG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FCMPG extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPL.java index a38c73951..5e53952cc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCMPL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FCMPL - Compare floats: value1 < value2 * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: FCMPL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FCMPL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FCMPL extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCONST.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCONST.java index 7b622b65b..c6fa0c03a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FCONST.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FCONST.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ... -> ..., </PRE> * - * @version $Id: FCONST.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FCONST.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FCONST extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FDIV.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FDIV.java index 1ccdd5af2..3abe077dd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FDIV.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FDIV.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FDIV - Divide floats * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: FDIV.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FDIV.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FDIV extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FLOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FLOAD.java index a47bddb4a..8ba53ed45 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FLOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FLOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FLOAD - Load float from local variable * <PRE>Stack ... -> ..., result</PRE> * - * @version $Id: FLOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FLOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FLOAD extends LoadInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FMUL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FMUL.java index 3b9622785..066e211f8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FMUL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FMUL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FMUL - Multiply floats * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: FMUL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FMUL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FMUL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FNEG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FNEG.java index 75864d2d2..3fa6addc0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FNEG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FNEG.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FNEG - Negate float * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: FNEG.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FNEG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FNEG extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FREM.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FREM.java index c34d770f6..a32dd7f06 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FREM.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FREM.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FREM - Remainder of floats * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: FREM.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FREM.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FREM extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FRETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FRETURN.java index cf433a498..e2f996410 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FRETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FRETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FRETURN - Return float from method * <PRE>Stack: ..., value -> <empty></PRE> * - * @version $Id: FRETURN.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FRETURN.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FRETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FSTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FSTORE.java index a7d07b3d2..f56bba38a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FSTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FSTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FSTORE - Store float into local variable * <PRE>Stack: ..., value -> ... </PRE> * - * @version $Id: FSTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FSTORE.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FSTORE extends StoreInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FSUB.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FSUB.java index b59e0da2d..00534a42f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FSUB.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FSUB.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * FSUB - Substract floats * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: FSUB.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FSUB.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class FSUB extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java index b5f66cbef..6e2c5b9be 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGen.java @@ -55,16 +55,28 @@ package org.aspectj.apache.bcel.generic; */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantObject; +import org.aspectj.apache.bcel.classfile.ConstantPool; +import org.aspectj.apache.bcel.classfile.ConstantValue; +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.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FieldGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Field */ @@ -100,10 +112,18 @@ public class FieldGen extends FieldGenOrMethodGen { 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]); + if(attrs[i] instanceof ConstantValue) { + setValue(((ConstantValue)attrs[i]).getConstantValueIndex()); + } else if (attrs[i] instanceof RuntimeAnnotations) { + RuntimeAnnotations runtimeAnnotations = (RuntimeAnnotations)attrs[i]; + List l = runtimeAnnotations.getAnnotations(); + for (Iterator it = l.iterator(); it.hasNext();) { + Annotation element = (Annotation) it.next(); + addAnnotation(new AnnotationGen(element,cp)); + } + } else { + addAttribute(attrs[i]); + } } } @@ -211,10 +231,21 @@ public class FieldGen extends FieldGenOrMethodGen { addAttribute(new ConstantValue(cp.addUtf8("ConstantValue"), 2, index, cp.getConstantPool())); } + + addAnnotationsAsAttribute(cp); return new Field(access_flags, name_index, signature_index, getAttributes(), cp.getConstantPool()); } + + private void addAnnotationsAsAttribute(ConstantPoolGen cp) { + Attribute[] attrs = Utility.getAnnotationAttributes(cp,annotation_vec); + if (attrs!=null) { + for (int i = 0; i < attrs.length; i++) { + addAttribute(attrs[i]); + } + } + } private int addConstant() { switch(type.getType()) { @@ -295,6 +326,9 @@ public class FieldGen extends FieldGenOrMethodGen { if(value != null) buf.append(" = " + value); + + + // J5TODO: Add attributes and annotations to the string return buf.toString(); } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGenOrMethodGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGenOrMethodGen.java index 053dd6b5f..f1b80630e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGenOrMethodGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldGenOrMethodGen.java @@ -55,14 +55,18 @@ import org.aspectj.apache.bcel.Constants; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FieldGenOrMethodGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class FieldGenOrMethodGen extends AccessFlags @@ -72,6 +76,7 @@ public abstract class FieldGenOrMethodGen extends AccessFlags protected Type type; protected ConstantPoolGen cp; private ArrayList attribute_vec = new ArrayList(); + protected ArrayList annotation_vec= new ArrayList(); protected FieldGenOrMethodGen() {} @@ -100,16 +105,19 @@ public abstract class FieldGenOrMethodGen extends AccessFlags * @param a attribute to be added */ public void addAttribute(Attribute a) { attribute_vec.add(a); } + public void addAnnotation(AnnotationGen ag) { annotation_vec.add(ag);} /** * Remove an attribute. */ public void removeAttribute(Attribute a) { attribute_vec.remove(a); } + public void removeAnnotation(AnnotationGen ag) { annotation_vec.remove(ag);} /** * Remove all attributes. */ public void removeAttributes() { attribute_vec.clear(); } + public void removeAnnotations(){ annotation_vec.clear();} /** * @return all attributes of this method. @@ -119,6 +127,12 @@ public abstract class FieldGenOrMethodGen extends AccessFlags attribute_vec.toArray(attributes); return attributes; } + + public AnnotationGen[] getAnnotations() { + AnnotationGen[] annotations = new AnnotationGen[annotation_vec.size()]; + annotation_vec.toArray(annotations); + return annotations; + } /** @return signature of method/field. */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldInstruction.java index 59dcb48fb..13058a959 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldInstruction.java @@ -55,11 +55,15 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: FieldInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class FieldInstruction extends FieldOrMethod diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldObserver.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldObserver.java index 28d2ec925..1a454db6a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldObserver.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldObserver.java @@ -58,7 +58,7 @@ package org.aspectj.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,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: FieldObserver.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface FieldObserver { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldOrMethod.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldOrMethod.java index f117c9cba..893f31d01 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldOrMethod.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/FieldOrMethod.java @@ -53,13 +53,17 @@ package org.aspectj.apache.bcel.generic; * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +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.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: FieldOrMethod.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class FieldOrMethod extends CPInstruction implements LoadClass { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/GETFIELD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/GETFIELD.java index 38705c6d8..a8f3f01b4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/GETFIELD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/GETFIELD.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * OR * <PRE>Stack: ..., objectref -> ..., value.word1, value.word2</PRE> * - * @version $Id: GETFIELD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: GETFIELD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class GETFIELD extends FieldInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/GETSTATIC.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/GETSTATIC.java index 98fa0cca5..49c7f3f76 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/GETSTATIC.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/GETSTATIC.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * OR * <PRE>Stack: ..., -> ..., value.word1, value.word2</PRE> * - * @version $Id: GETSTATIC.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: GETSTATIC.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class GETSTATIC extends FieldInstruction implements PushInstruction, ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO.java index 9ce0c2e0e..ecebd4bfe 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO.java @@ -58,7 +58,7 @@ import java.io.*; /** * GOTO - Branch always (to relative offset, not absolute address) * - * @version $Id: GOTO.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: GOTO.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class GOTO extends GotoInstruction implements VariableLengthInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO_W.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO_W.java index 4cd902c43..0c040b8bd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO_W.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/GOTO_W.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * GOTO_W - Branch always (to relative offset, not absolute address) * - * @version $Id: GOTO_W.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: GOTO_W.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class GOTO_W extends GotoInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/GotoInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/GotoInstruction.java index 22be9fdbe..1e10a02aa 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/GotoInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/GotoInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Super class for GOTO * - * @version $Id: GotoInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: GotoInstruction.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class GotoInstruction extends BranchInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2B.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2B.java index 45f1d264f..1c29c3406 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2B.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2B.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2B - Convert int to byte * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: I2B.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: I2B.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2B extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2C.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2C.java index 11d1d25e4..ecd13015d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2C.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2C.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2C - Convert int to char * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: I2C.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: I2C.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2C extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2D.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2D.java index d41823d24..869817d6d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2D.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2D.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2D - Convert int to double * <PRE>Stack: ..., value -> ..., result.word1, result.word2</PRE> * - * @version $Id: I2D.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: I2D.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2D extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2F.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2F.java index 567aae007..26a7a5fac 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2F.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2F.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2F - Convert int to float * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: I2F.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: I2F.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2F extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2L.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2L.java index 29e8d7717..d5f85955f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2L.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2L.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2L - Convert int to long * <PRE>Stack: ..., value -> ..., result.word1, result.word2</PRE> * - * @version $Id: I2L.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: I2L.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2L extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2S.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2S.java index 98b6b2258..40d24221a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/I2S.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/I2S.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * I2S - Convert int to short * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: I2S.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: I2S.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class I2S extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IADD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IADD.java index b501bd776..5333cba1f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IADD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IADD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IADD - Add ints * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: IADD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IADD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IADD extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IALOAD.java index 1e45ecbf1..c772e017e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IALOAD - Load int from array * <PRE>Stack: ..., arrayref, index -> ..., value</PRE> * - * @version $Id: IALOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IAND.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IAND.java index c327c940b..1613ea697 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IAND.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IAND.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IAND - Bitwise AND int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: IAND.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IAND.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IAND extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IASTORE.java index 8028441b7..422e22206 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IASTORE - Store into int array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: IASTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IASTORE.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ICONST.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ICONST.java index 78712c3fb..00bc3172b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ICONST.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ICONST.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ... -> ..., </PRE> * - * @version $Id: ICONST.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ICONST.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ICONST extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IDIV.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IDIV.java index 2c55f7d5d..e3953c0a3 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IDIV.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IDIV.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IDIV - Divide ints * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: IDIV.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IDIV.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IDIV extends ArithmeticInstruction implements ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFEQ.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFEQ.java index 598bae6bb..470eb7613 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFEQ.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFEQ.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFEQ.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IFEQ.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFEQ extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGE.java index 495f6e2c6..c183608be 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFGE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IFGE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFGE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGT.java index 11e1172e0..5fb8a7275 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFGT.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFGT.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IFGT.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFGT extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLE.java index 0faec1fe8..15e5fac6a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFLE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IFLE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFLE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLT.java index 9562cb3a5..59f1c5e66 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFLT.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFLT.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IFLT.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFLT extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNE.java index 574ac7eb7..f5ec78482 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value -> ...</PRE> * - * @version $Id: IFNE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IFNE.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFNE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNONNULL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNONNULL.java index 3a3d9f8ce..af6766e3a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNONNULL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNONNULL.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., reference -> ...</PRE> * - * @version $Id: IFNONNULL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IFNONNULL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFNONNULL extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNULL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNULL.java index abb5cdc7d..6d6fcdd6f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNULL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IFNULL.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., reference -> ...</PRE> * - * @version $Id: IFNULL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IFNULL.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IFNULL extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPEQ.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPEQ.java index 1d6a20b71..32246589d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPEQ.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPEQ.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ACMPEQ.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IF_ACMPEQ.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ACMPEQ extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPNE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPNE.java index f7657fb6d..984079381 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPNE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ACMPNE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ACMPNE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IF_ACMPNE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ACMPNE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPEQ.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPEQ.java index 45e7b1c0f..06a8a3b21 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPEQ.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPEQ.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPEQ.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IF_ICMPEQ.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPEQ extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGE.java index aacb42ac3..dd1e98215 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPGE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IF_ICMPGE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPGE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGT.java index d3e69b383..1abe80e6d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPGT.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPGT.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IF_ICMPGT.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPGT extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLE.java index f898c78a3..ffcdd6954 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPLE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IF_ICMPLE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPLE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLT.java index a14a6a1af..c9b6449c9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPLT.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPLT.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IF_ICMPLT.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPLT extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPNE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPNE.java index ccfdb875a..7d2ed208e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPNE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IF_ICMPNE.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., value1, value2 -> ...</PRE> * - * @version $Id: IF_ICMPNE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IF_ICMPNE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IF_ICMPNE extends IfInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IINC.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IINC.java index 78991f5d2..ea70fc53d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IINC.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IINC.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * IINC - Increment local variable by constant * - * @version $Id: IINC.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IINC.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IINC extends LocalVariableInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ILOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ILOAD.java index 1f8e69996..d85a157f4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ILOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ILOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ILOAD - Load int from local variable onto stack * <PRE>Stack: ... -> ..., result</PRE> * - * @version $Id: ILOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ILOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ILOAD extends LoadInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP1.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP1.java index ded62600e..7051b05ab 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP1.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP1.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * IMPDEP1 - Implementation dependent * - * @version $Id: IMPDEP1.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IMPDEP1.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IMPDEP1 extends Instruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP2.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP2.java index 1fe288fc1..303e06fed 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP2.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMPDEP2.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * IMPDEP2 - Implementation dependent * - * @version $Id: IMPDEP2.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IMPDEP2.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IMPDEP2 extends Instruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMUL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMUL.java index 328b0b5e6..47776fcd7 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IMUL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IMUL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IMUL - Multiply ints * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: IMUL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IMUL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IMUL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INEG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INEG.java index b96f65194..f8738efc5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INEG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INEG.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * INEG - Negate int * <PRE>Stack: ..., value -> ..., result</PRE> * - * @version $Id: INEG.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: INEG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class INEG extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INSTANCEOF.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INSTANCEOF.java index e06dc11aa..0d5be0711 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INSTANCEOF.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INSTANCEOF.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * INSTANCEOF - Determine if object is of given type * <PRE>Stack: ..., objectref -> ..., result</PRE> * - * @version $Id: INSTANCEOF.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: INSTANCEOF.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class INSTANCEOF extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEINTERFACE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEINTERFACE.java index c3ba20f4b..2d49539fd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEINTERFACE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEINTERFACE.java @@ -64,7 +64,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * INVOKEINTERFACE - Invoke interface method * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -> ...</PRE> * - * @version $Id: INVOKEINTERFACE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: INVOKEINTERFACE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class INVOKEINTERFACE extends InvokeInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESPECIAL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESPECIAL.java index a86443b65..2180ef030 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESPECIAL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESPECIAL.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -> ...</PRE> * - * @version $Id: INVOKESPECIAL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: INVOKESPECIAL.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class INVOKESPECIAL extends InvokeInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESTATIC.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESTATIC.java index f68231ff3..dafd0b2b4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESTATIC.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKESTATIC.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * * <PRE>Stack: ..., [arg1, [arg2 ...]] -> ...</PRE> * - * @version $Id: INVOKESTATIC.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: INVOKESTATIC.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class INVOKESTATIC extends InvokeInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEVIRTUAL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEVIRTUAL.java index 4564f41b7..de1250ac0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEVIRTUAL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/INVOKEVIRTUAL.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * * <PRE>Stack: ..., objectref, [arg1, [arg2 ...]] -> ...</PRE> * - * @version $Id: INVOKEVIRTUAL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: INVOKEVIRTUAL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class INVOKEVIRTUAL extends InvokeInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IOR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IOR.java index f26e143fa..775c32954 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IOR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IOR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IOR - Bitwise OR int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: IOR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IOR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IOR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IREM.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IREM.java index 946018d49..33b9b3c1e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IREM.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IREM.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IREM - Remainder of int * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: IREM.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IREM.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IREM extends ArithmeticInstruction implements ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IRETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IRETURN.java index 304d52759..5579fa937 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IRETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IRETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IRETURN - Return int from method * <PRE>Stack: ..., value -> <empty></PRE> * - * @version $Id: IRETURN.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IRETURN.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IRETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHL.java index 98a696b9c..f7b0ca880 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ISHL - Arithmetic shift left int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: ISHL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ISHL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ISHL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHR.java index cd5aed393..e610b1c74 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISHR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ISHR - Arithmetic shift right int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: ISHR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ISHR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ISHR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISTORE.java index 9ee2252fd..9afdb0f3a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ISTORE - Store int from stack into local variable * <PRE>Stack: ..., value -> ... </PRE> * - * @version $Id: ISTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ISTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ISTORE extends StoreInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISUB.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISUB.java index 1e0482f65..4211994cb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ISUB.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ISUB.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * ISUB - Substract ints * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: ISUB.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ISUB.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ISUB extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IUSHR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IUSHR.java index 58d156ad8..b910f82cf 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IUSHR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IUSHR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IUSHR - Logical shift right int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: IUSHR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IUSHR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IUSHR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IXOR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IXOR.java index da09019c6..4ec89f6d6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IXOR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IXOR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * IXOR - Bitwise XOR int * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: IXOR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IXOR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class IXOR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IfInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IfInstruction.java index b71fb110b..ee0ca3346 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IfInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IfInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Super class for the IFxxx family of instructions. * - * @version $Id: IfInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: IfInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class IfInstruction extends BranchInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/IndexedInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/IndexedInstruction.java index dd2d3c036..5e7e460a9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/IndexedInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/IndexedInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denote entity that refers to an index, e.g. local variable instructions, * RET, CPInstruction, etc. * - * @version $Id: IndexedInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IndexedInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface IndexedInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/Instruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/Instruction.java index c377298fa..5fddcf7dc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/Instruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/Instruction.java @@ -54,18 +54,16 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: Instruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class Instruction implements Cloneable, Serializable { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionComparator.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionComparator.java index 20be9195b..7f9b116f1 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionComparator.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionComparator.java @@ -64,7 +64,7 @@ package org.aspectj.apache.bcel.generic; * instructions must have the same target. * * @see Instruction - * @version $Id: InstructionComparator.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionComparator.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface InstructionComparator { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionConstants.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionConstants.java index 31dc042da..cf1a390e5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionConstants.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionConstants.java @@ -70,7 +70,7 @@ import org.aspectj.apache.bcel.Constants; * The Instructions can also accessed directly under their names, so * it's possible to write il.append(Instruction.ICONST_0); * - * @version $Id: InstructionConstants.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: InstructionConstants.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface InstructionConstants { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionFactory.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionFactory.java index f89a5c7ed..8524f03be 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionFactory.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionFactory.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.Constants; * byte code generating backend of a compiler. You can subclass it to * add your own create methods. * - * @version $Id: InstructionFactory.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionFactory.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Constants */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionHandle.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionHandle.java index 7722ff39b..df4b4b547 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionHandle.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionHandle.java @@ -71,7 +71,7 @@ import java.util.HashMap; * can traverse the list via an Enumeration returned by * InstructionList.elements(). * - * @version $Id: InstructionHandle.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionHandle.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Instruction * @see BranchHandle diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionList.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionList.java index b4eea8468..1020165f5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionList.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionList.java @@ -75,7 +75,7 @@ import java.util.ArrayList; * A list is finally dumped to a byte code array with <a * href="#getByteCode()">getByteCode</a>. * - * @version $Id: InstructionList.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionList.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Instruction * @see InstructionHandle diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionListObserver.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionListObserver.java index 3d7bed1ce..c6a28bc69 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionListObserver.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionListObserver.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Implement this interface if you're interested in changes to an InstructionList object * and register yourself with addObserver(). * - * @version $Id: InstructionListObserver.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionListObserver.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface InstructionListObserver { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionTargeter.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionTargeter.java index b0949cc2f..1d19aacb7 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionTargeter.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionTargeter.java @@ -61,7 +61,7 @@ package org.aspectj.apache.bcel.generic; * @see BranchHandle * @see LocalVariableGen * @see CodeExceptionGen - * @version $Id: InstructionTargeter.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionTargeter.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface InstructionTargeter { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/InvokeInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/InvokeInstruction.java index 98c7f68ea..f6a8da275 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/InvokeInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/InvokeInstruction.java @@ -54,13 +54,16 @@ package org.aspectj.apache.bcel.generic; * <http://www.apache.org/>. */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +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.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: InvokeInstruction.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class InvokeInstruction extends FieldOrMethod diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR.java index 923c46d04..bf338e8f1 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR.java @@ -58,7 +58,7 @@ import java.io.*; /** * JSR - Jump to subroutine * - * @version $Id: JSR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: JSR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class JSR extends JsrInstruction implements VariableLengthInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR_W.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR_W.java index 3e0fd2fa8..ccaab667b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR_W.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/JSR_W.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * JSR_W - Jump to subroutine * - * @version $Id: JSR_W.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: JSR_W.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class JSR_W extends JsrInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/JsrInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/JsrInstruction.java index 77b98342e..75c39160d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/JsrInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/JsrInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Super class for JSR - Jump to subroutine * - * @version $Id: JsrInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: JsrInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class JsrInstruction extends BranchInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2D.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2D.java index bfa3cbdd9..41df9bf41 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2D.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2D.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * L2D - Convert long to double * <PRE>Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: L2D.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: L2D.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class L2D extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2F.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2F.java index 7a493d045..af8c53556 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2F.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2F.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * L2F - Convert long to float * <PRE>Stack: ..., value.word1, value.word2 -> ..., result</PRE> * - * @version $Id: L2F.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: L2F.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class L2F extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2I.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2I.java index f3823b43b..6cbfcf13c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/L2I.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/L2I.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * L2I - Convert long to int * <PRE>Stack: ..., value.word1, value.word2 -> ..., result</PRE> * - * @version $Id: L2I.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: L2I.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class L2I extends ConversionInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LADD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LADD.java index 4422d8b1d..e1bc63860 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LADD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LADD.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: LADD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LADD.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LADD extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LALOAD.java index c4e6f7f97..cfa21bd69 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LALOAD - Load long from array * <PRE>Stack: ..., arrayref, index -> ..., value1, value2</PRE> * - * @version $Id: LALOAD.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LALOAD.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LAND.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LAND.java index 244e56d50..03770b364 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LAND.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LAND.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: LAND.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LAND.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LAND extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LASTORE.java index 4c8365504..ae5637864 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LASTORE - Store into long array * <PRE>Stack: ..., arrayref, index, value.word1, value.word2 -> ...</PRE> * - * @version $Id: LASTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LCMP.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LCMP.java index 2bdcceeb2..d77a723ce 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LCMP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LCMP.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result <= -1, 0, 1> * - * @version $Id: LCMP.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LCMP.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LCMP extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LCONST.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LCONST.java index cd3a4e13d..76aeb5b0a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LCONST.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LCONST.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ... -> ..., </PRE> * - * @version $Id: LCONST.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LCONST.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LCONST extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC.java index 961950240..dfe293e14 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * * <PRE>Stack: ... -> ..., item</PRE> * - * @version $Id: LDC.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LDC.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LDC extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC2_W.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC2_W.java index 82c7857dc..3f44a4f08 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC2_W.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC2_W.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ... -> ..., item.word1, item.word2</PRE> * - * @version $Id: LDC2_W.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LDC2_W.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LDC2_W extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC_W.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC_W.java index 6975a8c5b..0269c1b7a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC_W.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDC_W.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * * <PRE>Stack: ... -> ..., item.word1, item.word2</PRE> * - * @version $Id: LDC_W.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LDC_W.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LDC_W extends LDC { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDIV.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDIV.java index 22f09e0e3..dd3ec5764 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LDIV.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LDIV.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: LDIV.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LDIV.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LDIV extends ArithmeticInstruction implements ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LLOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LLOAD.java index 16e0338ee..ebd528d36 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LLOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LLOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LLOAD - Load long from local variable *<PRE>Stack ... -> ..., result.word1, result.word2</PRE> * - * @version $Id: LLOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LLOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LLOAD extends LoadInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LMUL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LMUL.java index 96f1a10c4..8a257f0c2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LMUL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LMUL.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: LMUL.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LMUL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LMUL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LNEG.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LNEG.java index 93e5c8760..a9535ea81 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LNEG.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LNEG.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LNEG - Negate long * <PRE>Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: LNEG.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LNEG.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LNEG extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LOOKUPSWITCH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LOOKUPSWITCH.java index f4246947a..5b0e93890 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LOOKUPSWITCH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LOOKUPSWITCH.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * LOOKUPSWITCH - Switch with unordered set of values * - * @version $Id: LOOKUPSWITCH.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LOOKUPSWITCH.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see SWITCH */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LOR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LOR.java index 8573248b8..0a2675cd0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LOR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LOR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LOR - Bitwise OR long * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: LOR.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LOR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LOR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LREM.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LREM.java index b34b8dec2..c435cd118 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LREM.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LREM.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LREM - Remainder of long * <PRE>Stack: ..., value1, value2 -> result</PRE> * - * @version $Id: LREM.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LREM.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LREM extends ArithmeticInstruction implements ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LRETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LRETURN.java index 8e6b650fc..f8562dca7 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LRETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LRETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LRETURN - Return long from method * <PRE>Stack: ..., value.word1, value.word2 -> <empty></PRE> * - * @version $Id: LRETURN.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LRETURN.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LRETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHL.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHL.java index e73071cea..90fbaba48 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHL.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHL.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LSHL - Arithmetic shift left long * <PRE>Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: LSHL.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LSHL.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LSHL extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHR.java index 395a152cd..002986e21 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSHR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LSHR - Arithmetic shift right long * <PRE>Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2</PRE> * - * @version $Id: LSHR.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LSHR.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LSHR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSTORE.java index 5794b9f3f..cfa54370a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LSTORE - Store long into local variable * <PRE>Stack: ..., value.word1, value.word2 -> ... </PRE> * - * @version $Id: LSTORE.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LSTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LSTORE extends StoreInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSUB.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSUB.java index 33ca8ef3d..6a8b92601 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LSUB.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LSUB.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * <PRE>Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -></PRE> * ..., result.word1, result.word2 * - * @version $Id: LSUB.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LSUB.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LSUB extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LUSHR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LUSHR.java index 8255cf678..b3ba61c8e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LUSHR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LUSHR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LUSHR - Logical shift right long * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: LUSHR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LUSHR.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LUSHR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LXOR.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LXOR.java index 86f114d1e..a8304ec26 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LXOR.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LXOR.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * LXOR - Bitwise XOR long * <PRE>Stack: ..., value1, value2 -> ..., result</PRE> * - * @version $Id: LXOR.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LXOR.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class LXOR extends ArithmeticInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LineNumberGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LineNumberGen.java index ca8d8fb7c..a5813513d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LineNumberGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LineNumberGen.java @@ -54,13 +54,15 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: LineNumberGen.java,v 1.3 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see LineNumber * @see MethodGen diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadClass.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadClass.java index 21d0d854f..8f2679db1 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadClass.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadClass.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes that an instruction may start the process of loading and resolving * the referenced class in the Virtual Machine. * - * @version $Id: LoadClass.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LoadClass.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface LoadClass { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadInstruction.java index 915b8b858..f2c7165cb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LoadInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes an unparameterized instruction to load a value from a local * variable, e.g. ILOAD. * - * @version $Id: LoadInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: LoadInstruction.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class LoadInstruction extends LocalVariableInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableGen.java index 25abcc959..53916ea8e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableGen.java @@ -55,7 +55,8 @@ package org.aspectj.apache.bcel.generic; */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +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 @@ -63,7 +64,7 @@ import org.aspectj.apache.bcel.classfile.*; * with getLocalVariable which needs the instruction list and the constant * pool as parameters. * - * @version $Id: LocalVariableGen.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LocalVariableGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see LocalVariable * @see MethodGen diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableInstruction.java index dd12e56c5..904ed68ab 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/LocalVariableInstruction.java @@ -53,16 +53,15 @@ package org.aspectj.apache.bcel.generic; * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ -import java.io.DataOutputStream; -import java.io.IOException; - -import org.aspectj.apache.bcel.Constants; +import java.io.*; import org.aspectj.apache.bcel.util.ByteSequence; +import org.aspectj.apache.bcel.classfile.Utility; +import org.aspectj.apache.bcel.Constants; /** * Abstract super class for instructions dealing with local variables. * - * @version $Id: LocalVariableInstruction.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: LocalVariableInstruction.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class LocalVariableInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITORENTER.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITORENTER.java index 74be1556f..26dbc258b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITORENTER.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITORENTER.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * MONITORENTER - Enter monitor for object * <PRE>Stack: ..., objectref -> ...</PRE> * - * @version $Id: MONITORENTER.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: MONITORENTER.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class MONITORENTER extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITOREXIT.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITOREXIT.java index d8b743ac5..986eb4ea9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITOREXIT.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MONITOREXIT.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * MONITOREXIT - Exit monitor for object * <PRE>Stack: ..., objectref -> ...</PRE> * - * @version $Id: MONITOREXIT.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: MONITOREXIT.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class MONITOREXIT extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MULTIANEWARRAY.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MULTIANEWARRAY.java index 7133d8a4f..3472fd218 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MULTIANEWARRAY.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MULTIANEWARRAY.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * MULTIANEWARRAY - Create new mutidimensional array of references * <PRE>Stack: ..., count1, [count2, ...] -> ..., arrayref</PRE> * - * @version $Id: MULTIANEWARRAY.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: MULTIANEWARRAY.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class MULTIANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction, ExceptionThrower { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java index 87a7f211d..78969c1c2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodGen.java @@ -54,9 +54,27 @@ package org.aspectj.apache.bcel.generic; * <http://www.apache.org/>. */ +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Stack; + import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; -import java.util.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.ExceptionTable; +import org.aspectj.apache.bcel.classfile.LineNumber; +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.Utility; +import org.aspectj.apache.bcel.classfile.annotation.Annotation; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeAnnotations; +import org.aspectj.apache.bcel.classfile.annotation.RuntimeParameterAnnotations; +import org.aspectj.apache.bcel.generic.annotation.AnnotationGen; /** * Template class for building up a method. This is done by defining exception @@ -68,7 +86,7 @@ import java.util.*; * use the `removeNOPs' method to get rid off them. * The resulting method object can be obtained via the `getMethod()' method. * - * @version $Id: MethodGen.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: MethodGen.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @author <A HREF="http://www.vmeng.com/beard">Patrick C. Beard</A> [setMaxStack()] * @see InstructionList @@ -88,6 +106,9 @@ public class MethodGen extends FieldGenOrMethodGen { private ArrayList exception_vec = new ArrayList(); private ArrayList throws_vec = new ArrayList(); private ArrayList code_attrs_vec = new ArrayList(); + private List[] param_annotations; // Array of lists containing AnnotationGen objects + private boolean hasParameterAnnotations = false; + private boolean haveUnpackedParameterAnnotations = false; /** * Declare method. If the method is non-static the constructor @@ -262,8 +283,16 @@ public class MethodGen extends FieldGenOrMethodGen { String[] names = ((ExceptionTable)a).getExceptionNames(); for(int j=0; j < names.length; j++) addException(names[j]); - } else - addAttribute(a); + } else if (a instanceof RuntimeAnnotations) { + RuntimeAnnotations runtimeAnnotations = (RuntimeAnnotations)a; + List l = runtimeAnnotations.getAnnotations(); + for (Iterator it = l.iterator(); it.hasNext();) { + Annotation element = (Annotation) it.next(); + addAnnotation(new AnnotationGen(element,cp)); + } + } else { + addAttribute(a); + } } } @@ -576,6 +605,25 @@ public class MethodGen extends FieldGenOrMethodGen { */ public void addCodeAttribute(Attribute a) { code_attrs_vec.add(a); } + public void addAnnotationsAsAttribute(ConstantPoolGen cp) { + Attribute[] attrs = Utility.getAnnotationAttributes(cp,annotation_vec); + if (attrs!=null) { + for (int i = 0; i < attrs.length; i++) { + addAttribute(attrs[i]); + } + } + } + + public void addParameterAnnotationsAsAttribute(ConstantPoolGen cp) { + if (!hasParameterAnnotations) return; + Attribute[] attrs = Utility.getParameterAnnotationAttributes(cp,param_annotations); + if (attrs!=null) { + for (int i = 0; i < attrs.length; i++) { + addAttribute(attrs[i]); + } + } + } + /** * Remove a code attribute. */ @@ -617,6 +665,7 @@ public class MethodGen extends FieldGenOrMethodGen { LineNumberTable lnt = null; LocalVariableTable lvt = null; + //J5TODO: LocalVariableTypeTable support! /* Create LocalVariableTable and LineNumberTable attributes (for debuggers, e.g.) */ @@ -643,10 +692,9 @@ public class MethodGen extends FieldGenOrMethodGen { // Remove any stale code attribute Attribute[] attributes = getAttributes(); for(int i=0; i < attributes.length; i++) { - Attribute a = attributes[i]; - - if(a instanceof Code) - removeAttribute(a); + Attribute a = attributes[i]; + if(a instanceof Code) + removeAttribute(a); } code = new Code(cp.addUtf8("Code"), @@ -661,6 +709,10 @@ public class MethodGen extends FieldGenOrMethodGen { addAttribute(code); } + + addAnnotationsAsAttribute(cp); + addParameterAnnotationsAsAttribute(cp); + ExceptionTable et = null; if(throws_vec.size() > 0) @@ -674,7 +726,7 @@ public class MethodGen extends FieldGenOrMethodGen { if(lnt != null) removeCodeAttribute(lnt); if(code != null) removeAttribute(code); if(et != null) removeAttribute(et); - +//J5TODO: Remove the annotation attributes that may have been added return m; } @@ -971,5 +1023,83 @@ public class MethodGen extends FieldGenOrMethodGen { } return mg; + } + + //J5TODO: Should param_annotations be an array of arrays? Rather than an array of lists, this + // is more likely to suggest to the caller it is readonly (which a List does not). + /** + * Return a list of AnnotationGen objects representing parameter annotations + */ + public List getAnnotationsOnParameter(int i) { + ensureExistingParameterAnnotationsUnpacked(); + if (!hasParameterAnnotations || i>arg_types.length) return null; + return param_annotations[i]; + } + + /** + * Goes through the attributes on the method and identifies any that are RuntimeParameterAnnotations, + * extracting their contents and storing them as parameter annotations. There are two kinds of + * parameter annotation - visible and invisible. Once they have been unpacked, these attributes are + * deleted. (The annotations will be rebuilt as attributes when someone builds a Method object out + * of this MethodGen object). + */ + private void ensureExistingParameterAnnotationsUnpacked() { + if (haveUnpackedParameterAnnotations) return; + // Find attributes that contain parameter annotation data + Attribute[] attrs = getAttributes(); + RuntimeParameterAnnotations paramAnnVisAttr = null; + RuntimeParameterAnnotations paramAnnInvisAttr=null; + List accumulatedAnnotations = new ArrayList(); + for (int i = 0; i < attrs.length; i++) { + Attribute attribute = attrs[i]; + if (attribute instanceof RuntimeParameterAnnotations) { + + // Initialize param_annotations + if (!hasParameterAnnotations) { + param_annotations = new List[arg_types.length]; + for (int j=0;j<arg_types.length;j++) param_annotations[j]=new ArrayList(); + } + + hasParameterAnnotations = true; + RuntimeParameterAnnotations rpa = (RuntimeParameterAnnotations)attribute; + if (rpa.areVisible()) paramAnnVisAttr = rpa; + else paramAnnInvisAttr=rpa; + for (int j=0; j<arg_types.length; j++) { + // This returns Annotation[] ... + Annotation[] immutableArray = rpa.getAnnotationsOnParameter(j); + // ... which needs transforming into an AnnotationGen[] ... + List mutable = makeMutableVersion(immutableArray); + // ... then add these to any we already know about + param_annotations[j].addAll(mutable); + } + } + } + if (paramAnnVisAttr != null) removeAttribute(paramAnnVisAttr); + if (paramAnnInvisAttr!=null) removeAttribute(paramAnnInvisAttr); + haveUnpackedParameterAnnotations = true; + } + + private List /*AnnotationGen*/ makeMutableVersion(Annotation[] mutableArray) { + List result = new ArrayList(); + for (int i = 0; i < mutableArray.length; i++) { + result.add(new AnnotationGen(mutableArray[i],getConstantPool())); + } + return result; + } + + public void addParameterAnnotation(int parameterIndex, AnnotationGen annotation) { + ensureExistingParameterAnnotationsUnpacked(); + if (!hasParameterAnnotations) { + param_annotations = new List[arg_types.length]; + hasParameterAnnotations = true; + } + List existingAnnotations = param_annotations[parameterIndex]; + if (existingAnnotations != null) { + existingAnnotations.add(annotation); + } else { + List l = new ArrayList(); + l.add(annotation); + param_annotations[parameterIndex] = l; + } } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodObserver.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodObserver.java index a9516f474..6ea987bfa 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodObserver.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/MethodObserver.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Implement this interface if you're interested in changes to a MethodGen object * and register yourself with addObserver(). * - * @version $Id: MethodObserver.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: MethodObserver.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface MethodObserver { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/NEW.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/NEW.java index 316fa914a..0b0701b80 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/NEW.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/NEW.java @@ -53,13 +53,14 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: NEW.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class NEW extends CPInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/NEWARRAY.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/NEWARRAY.java index f4cd9fab9..ba1c1b468 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/NEWARRAY.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/NEWARRAY.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * <PRE>Stack: ..., count -> ..., arrayref</PRE> * type must be one of T_INT, T_SHORT, ... * - * @version $Id: NEWARRAY.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: NEWARRAY.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class NEWARRAY extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/NOP.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/NOP.java index cad1fdb42..3fc5ae1bf 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/NOP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/NOP.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * NOP - Do nothing * - * @version $Id: NOP.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: NOP.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class NOP extends Instruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/NamedAndTyped.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/NamedAndTyped.java index c16c56118..4b4ed30d5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/NamedAndTyped.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/NamedAndTyped.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denote entity that has both name and type. This is true for local variables, * methods and fields. * - * @version $Id: NamedAndTyped.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: NamedAndTyped.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface NamedAndTyped { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java index 21d4aead0..18af02c7b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java @@ -60,7 +60,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; /** * Denotes reference such as java.lang.String. * - * @version $Id: ObjectType.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ObjectType.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ObjectType extends ReferenceType { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/POP.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/POP.java index 0926d6547..948e4c7e2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/POP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/POP.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., word -> ...</PRE> * - * @version $Id: POP.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: POP.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class POP extends StackInstruction implements PopInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/POP2.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/POP2.java index ca9d6fa1b..fb50175a9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/POP2.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/POP2.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * * <PRE>Stack: ..., word2, word1 -> ...</PRE> * - * @version $Id: POP2.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: POP2.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class POP2 extends StackInstruction implements PopInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUSH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUSH.java index f593f61e0..d76650f44 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUSH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUSH.java @@ -54,12 +54,13 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: PUSH.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class PUSH diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTFIELD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTFIELD.java index 21fb71eab..916c573ec 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTFIELD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTFIELD.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * OR * <PRE>Stack: ..., objectref, value.word1, value.word2 -> ...</PRE> * - * @version $Id: PUTFIELD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: PUTFIELD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class PUTFIELD diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTSTATIC.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTSTATIC.java index 7cc668276..abe4447eb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTSTATIC.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/PUTSTATIC.java @@ -63,7 +63,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; * OR * <PRE>Stack: ..., value.word1, value.word2 -> ...</PRE> * - * @version $Id: PUTSTATIC.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: PUTSTATIC.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class PUTSTATIC extends FieldInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/PopInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/PopInstruction.java index 4594a91d9..4f93f975a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/PopInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/PopInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes an unparameterized instruction to pop a value on top from the stack, * such as ISTORE, POP, PUTSTATIC. * - * @version $Id: PopInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: PopInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ISTORE * @see POP diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/PushInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/PushInstruction.java index 6626a9ffc..c9a997265 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/PushInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/PushInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes an unparameterized instruction to produce a value on top of the stack, * such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc. * - * @version $Id: PushInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: PushInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ILOAD diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/RET.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/RET.java index 0940ebcbe..39f374997 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/RET.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/RET.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * * <PRE>Stack: ..., -> ..., address</PRE> * - * @version $Id: RET.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: RET.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class RET extends Instruction implements IndexedInstruction, TypedInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/RETURN.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/RETURN.java index 449209cf7..ce7449dd4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/RETURN.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/RETURN.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * RETURN - Return from void method * <PRE>Stack: ... -> <empty></PRE> * - * @version $Id: RETURN.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: RETURN.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class RETURN extends ReturnInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java index 0a6381345..13a8d6358 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReferenceType.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; /** * Super class for object and array types. * - * @version $Id: ReferenceType.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: ReferenceType.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class ReferenceType extends Type { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnInstruction.java index 69eaa3f84..7ed21807d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnInstruction.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.ExceptionConstants; /** * Super class for the xRETURN family of instructions. * - * @version $Id: ReturnInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ReturnInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class ReturnInstruction extends Instruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java index ca4b39dd4..0b1c6a418 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ReturnaddressType.java @@ -60,7 +60,7 @@ import org.aspectj.apache.bcel.generic.InstructionHandle; * Returnaddress, the type JSR or JSR_W instructions push upon the stack. * * see vmspec2 §3.3.3 - * @version $Id: ReturnaddressType.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ReturnaddressType.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase">Enver Haase</A> */ public class ReturnaddressType extends Type { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/SALOAD.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/SALOAD.java index 083268b41..da41cdfcb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/SALOAD.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/SALOAD.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * SALOAD - Load short from array * <PRE>Stack: ..., arrayref, index -> ..., value</PRE> * - * @version $Id: SALOAD.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: SALOAD.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class SALOAD extends ArrayInstruction implements StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/SASTORE.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/SASTORE.java index 1468a0a54..4c1afb0fb 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/SASTORE.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/SASTORE.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * SASTORE - Store into short array * <PRE>Stack: ..., arrayref, index, value -> ...</PRE> * - * @version $Id: SASTORE.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: SASTORE.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class SASTORE extends ArrayInstruction implements StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/SIPUSH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/SIPUSH.java index eea1f4ea1..717947172 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/SIPUSH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/SIPUSH.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; * * <PRE>Stack: ... -> ..., value</PRE> * - * @version $Id: SIPUSH.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: SIPUSH.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class SIPUSH extends Instruction implements ConstantPushInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/SWAP.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/SWAP.java index f8d2ed78e..ee2b4e39b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/SWAP.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/SWAP.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * SWAP - Swa top operand stack word * <PRE>Stack: ..., word2, word1 -> ..., word1, word2</PRE> * - * @version $Id: SWAP.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: SWAP.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class SWAP extends StackInstruction implements StackConsumer, StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/SWITCH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/SWITCH.java index 0da2ac03a..35e4aa468 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/SWITCH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/SWITCH.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic; * TABLESWITCH instruction, depending on whether the match values (int[]) can be * sorted with no gaps between the numbers. * - * @version $Id: SWITCH.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: SWITCH.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class SWITCH implements CompoundInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/Select.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/Select.java index c62752820..6a8b19d9d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/Select.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/Select.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions. * - * @version $Id: Select.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Select.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see LOOKUPSWITCH * @see TABLESWITCH diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackConsumer.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackConsumer.java index 8cc24e47d..f302caa35 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackConsumer.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackConsumer.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Denote an instruction that may consume a value from the stack. * - * @version $Id: StackConsumer.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: StackConsumer.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface StackConsumer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackInstruction.java index 48fc67861..e98f38286 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackInstruction.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Super class for stack operations like DUP and POP. * - * @version $Id: StackInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StackInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class StackInstruction extends Instruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackProducer.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackProducer.java index d08bfa816..4fc3ea20c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/StackProducer.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/StackProducer.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denote an instruction that may produce a value on top of the stack * (this excludes DUP_X1, e.g.) * - * @version $Id: StackProducer.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: StackProducer.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface StackProducer { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/StoreInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/StoreInstruction.java index 58572cc5f..a069c6e89 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/StoreInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/StoreInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes an unparameterized instruction to store a value into a local variable, * e.g. ISTORE. * - * @version $Id: StoreInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StoreInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class StoreInstruction extends LocalVariableInstruction diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/TABLESWITCH.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/TABLESWITCH.java index 8ef688aeb..b934f369d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/TABLESWITCH.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/TABLESWITCH.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.util.ByteSequence; /** * TABLESWITCH - Switch within given range of values, i.e., low..high * - * @version $Id: TABLESWITCH.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: TABLESWITCH.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see SWITCH */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/TargetLostException.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/TargetLostException.java index 0aa6d52ca..e72394da4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/TargetLostException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/TargetLostException.java @@ -82,7 +82,7 @@ package org.aspectj.apache.bcel.generic; * @see InstructionHandle * @see InstructionList * @see InstructionTargeter - * @version $Id: TargetLostException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: TargetLostException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class TargetLostException extends Exception { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/Type.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/Type.java index 718bcb93b..704fb6c72 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/Type.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/Type.java @@ -55,14 +55,17 @@ package org.aspectj.apache.bcel.generic; */ import org.aspectj.apache.bcel.Constants; -import org.aspectj.apache.bcel.classfile.*; +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.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Type.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public abstract class Type implements java.io.Serializable { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/TypedInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/TypedInstruction.java index c0e68ee7b..98a58719e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/TypedInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/TypedInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Get the type associated with an instruction, int for ILOAD, or the type * of the field of a PUTFIELD instruction, e.g.. * - * @version $Id: TypedInstruction.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: TypedInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface TypedInstruction { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/UnconditionalBranch.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/UnconditionalBranch.java index 2898746a2..36257b260 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/UnconditionalBranch.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/UnconditionalBranch.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.generic; /** * Denotes an instruction to perform an unconditional branch, i.e., GOTO, JSR. * - * @version $Id: UnconditionalBranch.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: UnconditionalBranch.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see GOTO diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/VariableLengthInstruction.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/VariableLengthInstruction.java index dc68e5561..462a3f1d3 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/VariableLengthInstruction.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/VariableLengthInstruction.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.generic; * Denotes an instruction to be a variable length instruction, such as * GOTO, JSR, LOOKUPSWITCH and TABLESWITCH. * - * @version $Id: VariableLengthInstruction.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: VariableLengthInstruction.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see GOTO diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/Visitor.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/Visitor.java index d7a904eb6..91024133e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/Visitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/Visitor.java @@ -60,7 +60,7 @@ package org.aspectj.apache.bcel.generic; * instructions with the properly typed methods just by calling the accept() * method. * - * @version $Id: Visitor.java,v 1.1 2004/11/18 14:48:11 aclement Exp $ + * @version $Id: Visitor.java,v 1.2 2004/11/19 16:45:18 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public interface Visitor { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/package.html b/bcel-builder/src/org/aspectj/apache/bcel/generic/package.html index 39bae63ac..ac6c8ef75 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/generic/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:11 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/package.html b/bcel-builder/src/org/aspectj/apache/bcel/package.html index a9b32543a..9d71a08ee 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/AttributeHTML.java b/bcel-builder/src/org/aspectj/apache/bcel/util/AttributeHTML.java index 54414ad6f..6363d6abd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/AttributeHTML.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/AttributeHTML.java @@ -54,13 +54,29 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.ConstantPool; +import org.aspectj.apache.bcel.classfile.ConstantUtf8; +import org.aspectj.apache.bcel.classfile.ConstantValue; +import org.aspectj.apache.bcel.classfile.ExceptionTable; +import org.aspectj.apache.bcel.classfile.InnerClass; +import org.aspectj.apache.bcel.classfile.InnerClasses; +import org.aspectj.apache.bcel.classfile.LineNumber; +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.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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: AttributeHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/BCELFactory.java b/bcel-builder/src/org/aspectj/apache/bcel/util/BCELFactory.java index ba8b54948..9402f0a96 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/BCELFactory.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/BCELFactory.java @@ -65,7 +65,7 @@ import java.util.*; * A helper class for BCELifier. * * @see BCELifier - * @version $Id: BCELFactory.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BCELFactory.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ class BCELFactory extends EmptyVisitor { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/BCELifier.java b/bcel-builder/src/org/aspectj/apache/bcel/util/BCELifier.java index b680d1484..fd21bf30f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/BCELifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/BCELifier.java @@ -53,7 +53,13 @@ package org.aspectj.apache.bcel.util; * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +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; @@ -66,7 +72,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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: BCELifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class BCELifier extends org.aspectj.apache.bcel.classfile.EmptyVisitor { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ByteSequence.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ByteSequence.java index 0d3963163..58b21e82d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ByteSequence.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ByteSequence.java @@ -60,7 +60,7 @@ import java.io.*; * via the `readByte()' method. This is used to implement a wrapper for the * Java byte code stream to gain some more readability. * - * @version $Id: ByteSequence.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ByteSequence.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public final class ByteSequence extends DataInputStream { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/Class2HTML.java b/bcel-builder/src/org/aspectj/apache/bcel/util/Class2HTML.java index 33330f816..e09b30e77 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/Class2HTML.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/Class2HTML.java @@ -54,18 +54,17 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintWriter; +import java.io.*; +import java.util.BitSet; -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. @@ -86,7 +85,7 @@ import org.aspectj.apache.bcel.classfile.Utility; * method in the Method's frame will jump to the appropiate method in * the Code frame. * - * @version $Id: Class2HTML.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: Class2HTML.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class Class2HTML implements Constants diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoader.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoader.java index 90ab36843..7641fa78b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoader.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoader.java @@ -57,7 +57,13 @@ package org.aspectj.apache.bcel.util; import java.util.Hashtable; import java.io.*; import org.aspectj.apache.bcel.*; -import org.aspectj.apache.bcel.classfile.*; +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 @@ -77,7 +83,7 @@ import org.aspectj.apache.bcel.classfile.*; * where to use the system class loader in the constructor. The default value contains * "java.", "sun.", "javax."</p> * - * @version $Id: ClassLoader.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassLoader.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see JavaWrapper * @see ClassPath diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java index 11ea8064e..5928fbd79 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java @@ -54,12 +54,14 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import java.io.IOException; -import java.io.InputStream; +import java.io.*; + +import java.util.Map; 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 @@ -70,7 +72,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * * @see org.aspectj.apache.bcel.Repository * - * @version $Id: ClassLoaderRepository.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: ClassLoaderRepository.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @author David Dixon-Peugh */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java index 39acde6c0..ef9d1e5c3 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassPath.java @@ -62,23 +62,21 @@ import java.io.*; * Responsible for loading (class) files from the CLASSPATH. Inspired by * sun.tools.ClassPath. * - * @version $Id: ClassPath.java,v 1.2 2004/11/18 16:00:19 aclement Exp $ + * @version $Id: ClassPath.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> */ public class ClassPath implements Serializable { - private static ClassPath SYSTEM_CLASS_PATH; + private static ClassPath SYSTEM_CLASS_PATH = null; + + private PathEntry[] paths; + private String class_path; - public static ClassPath getSystemClassPath() { - if (SYSTEM_CLASS_PATH==null) { + if (SYSTEM_CLASS_PATH == null) { SYSTEM_CLASS_PATH = new ClassPath(); } return SYSTEM_CLASS_PATH; } - - private PathEntry[] paths; - private String class_path; - /** * Search for classes in given path. */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassQueue.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassQueue.java index b05f22589..2793fb450 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassQueue.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassQueue.java @@ -60,7 +60,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * Utility class implementing a (typesafe) queue of JavaClass * objects. * - * @version $Id: ClassQueue.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassQueue.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ClassVector */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassSet.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassSet.java index cad52fe16..a647da32c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassSet.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassSet.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * Since JavaClass has no equals() method, the name of the class is * used for comparison. * - * @version $Id: ClassSet.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassSet.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ClassStack */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassStack.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassStack.java index 9c6643961..effd38b44 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassStack.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassStack.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; /** * Utility class implementing a (typesafe) stack of JavaClass objects. * - * @version $Id: ClassStack.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassStack.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see Stack */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassVector.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassVector.java index 7693b3b15..1f73c9334 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassVector.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassVector.java @@ -60,7 +60,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * Utility class implementing a (typesafe) collection of JavaClass * objects. Contains the most important methods of a Vector. * - * @version $Id: ClassVector.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassVector.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ClassQueue */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/CodeHTML.java b/bcel-builder/src/org/aspectj/apache/bcel/util/CodeHTML.java index 3e430af06..ddc9d5de6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/CodeHTML.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/CodeHTML.java @@ -54,14 +54,27 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +import org.aspectj.apache.bcel.classfile.ConstantNameAndType; +import org.aspectj.apache.bcel.classfile.ConstantPool; +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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: CodeHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ConstantHTML.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ConstantHTML.java index 445b6e21f..6734d4d6f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ConstantHTML.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ConstantHTML.java @@ -55,13 +55,24 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +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.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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ConstantHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/InstructionFinder.java b/bcel-builder/src/org/aspectj/apache/bcel/util/InstructionFinder.java index 3f2c02c32..c0eb6e9db 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/InstructionFinder.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/InstructionFinder.java @@ -81,7 +81,7 @@ import org.apache.regexp.*; ... } </pre> - * @version $Id: InstructionFinder.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InstructionFinder.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.berlin.de/~markus.dahm/">M. Dahm</A> * @see Instruction * @see InstructionList diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/JavaWrapper.java b/bcel-builder/src/org/aspectj/apache/bcel/util/JavaWrapper.java index 2ce3eaa3f..353a000b8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/JavaWrapper.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/JavaWrapper.java @@ -68,7 +68,7 @@ import java.lang.reflect.*; * <pre>java org.aspectj.apache.bcel.util.JavaWrapper -Dbcel.classloader=foo.MyLoader <real.class.name> [arguments]</pre> * </p> * - * @version $Id: JavaWrapper.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: JavaWrapper.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @see ClassLoader */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/MethodHTML.java b/bcel-builder/src/org/aspectj/apache/bcel/util/MethodHTML.java index a45307597..3f27cd1a8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/MethodHTML.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/MethodHTML.java @@ -54,13 +54,21 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.ConstantValue; +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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: MethodHTML.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/Repository.java b/bcel-builder/src/org/aspectj/apache/bcel/util/Repository.java index 763566764..8b8bec2e8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/Repository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/Repository.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * Repository.setRepository method. * * @see org.aspectj.apache.bcel.Repository - * @version $Id: Repository.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Repository.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @author David Dixon-Peugh */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/SyntheticRepository.java b/bcel-builder/src/org/aspectj/apache/bcel/util/SyntheticRepository.java index 36936794e..9f0e098c4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/SyntheticRepository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/SyntheticRepository.java @@ -54,12 +54,14 @@ package org.aspectj.apache.bcel.util; * <http://www.apache.org/>. */ -import java.io.IOException; -import java.io.InputStream; +import java.io.*; + +import java.util.Map; 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 @@ -78,7 +80,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * * @see org.aspectj.apache.bcel.Repository * - * @version $Id: SyntheticRepository.java,v 1.3 2004/11/18 16:00:19 aclement Exp $ + * @version $Id: SyntheticRepository.java,v 1.4 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> * @author David Dixon-Peugh */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/package.html b/bcel-builder/src/org/aspectj/apache/bcel/util/package.html index 53df3a0e6..9c2177946 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/GraphicalVerifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/GraphicalVerifier.java index 4bb635ec0..602399046 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/GraphicalVerifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/GraphicalVerifier.java @@ -54,18 +54,16 @@ package org.aspectj.apache.bcel.verifier; * <http://www.apache.org/>. */ -import java.awt.Dimension; -import java.awt.Toolkit; - import javax.swing.UIManager; - -import org.aspectj.apache.bcel.generic.Type; +import java.awt.*; +import org.aspectj.apache.bcel.verifier.*; +import org.aspectj.apache.bcel.generic.*; /** * A graphical user interface application demonstrating JustIce. * - * @version $Id: GraphicalVerifier.java,v 1.2 2004/11/18 15:07:06 aclement Exp $ + * @version $Id: GraphicalVerifier.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author Enver Haase */ public class GraphicalVerifier { diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/NativeVerifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/NativeVerifier.java index b984b81ac..ff31f8957 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/NativeVerifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/NativeVerifier.java @@ -61,7 +61,7 @@ package org.aspectj.apache.bcel.verifier; * This can be used for comparison runs between the JVM-internal verifier * and JustIce. * - * @version $Id: NativeVerifier.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: NativeVerifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public abstract class NativeVerifier{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/PassVerifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/PassVerifier.java index 9cb9e23c7..d059d8885 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/PassVerifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/PassVerifier.java @@ -77,7 +77,7 @@ import java.util.ArrayList; * That means, if you really want a new verification run of a certain * pass you must use a new instance of a given PassVerifier. * - * @version $Id: PassVerifier.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: PassVerifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see org.aspectj.apache.bcel.verifier.Verifier * @see #verify() diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/TransitiveHull.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/TransitiveHull.java index ff0904360..6cc1954fc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/TransitiveHull.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/TransitiveHull.java @@ -54,8 +54,10 @@ package org.aspectj.apache.bcel.verifier; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.Repository; +import org.aspectj.apache.bcel.verifier.*; 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 @@ -63,7 +65,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * all class files encountered; this may take up a lot of time and, * more notably, memory. * - * @version $Id: TransitiveHull.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: TransitiveHull.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class TransitiveHull implements VerifierFactoryObserver{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerificationResult.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerificationResult.java index 01ab0660c..f87dda6d9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerificationResult.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerificationResult.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.verifier; * A VerificationResult is what a PassVerifier returns * after verifying. * - * @version $Id: VerificationResult.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: VerificationResult.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/Verifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/Verifier.java index 5632b9032..0827266f6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/Verifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/Verifier.java @@ -54,16 +54,15 @@ 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. @@ -75,7 +74,7 @@ import org.aspectj.apache.bcel.verifier.structurals.Pass3bVerifier; * A Verifier creates PassVerifier instances to perform the actual verification. * Verifier instances are usually generated by the VerifierFactory. * - * @version $Id: Verifier.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: Verifier.java,v 1.3 2004/11/19 16:45:19 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 diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierAppFrame.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierAppFrame.java index 13aaebbcf..b602f09dd 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierAppFrame.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierAppFrame.java @@ -54,36 +54,20 @@ package org.aspectj.apache.bcel.verifier; * <http://www.apache.org/>. */ -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 java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.event.*; +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.*; /** * This class implements a machine-generated frame for use with * the GraphicalVerfifier. * - * @version $Id: VerifierAppFrame.java,v 1.2 2004/11/18 15:07:06 aclement Exp $ + * @version $Id: VerifierAppFrame.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author Enver Haase * @see GraphicalVerifier */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactory.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactory.java index 15f9547de..5b50b0cbc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactory.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactory.java @@ -64,7 +64,7 @@ import java.util.Vector; * operate on. That means, for every class (represented by a unique fully qualified * class name) there is exactly one Verifier. * - * @version $Id: VerifierFactory.java,v 1.2 2004/11/18 16:00:19 aclement Exp $ + * @version $Id: VerifierFactory.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see org.aspectj.apache.bcel.verifier.Verifier */ @@ -91,7 +91,7 @@ public class VerifierFactory{ * @return the (only) verifier responsible for the class with the given name. */ public static Verifier getVerifier(String fully_qualified_classname){ - //fully_qualified_classname = fully_qualified_classname; + fully_qualified_classname = fully_qualified_classname; Verifier v = (Verifier) (hashMap.get(fully_qualified_classname)); if (v==null){ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryListModel.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryListModel.java index 9746c71c9..b41304351 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryListModel.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryListModel.java @@ -53,12 +53,13 @@ package org.aspectj.apache.bcel.verifier; * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ -import javax.swing.event.ListDataEvent; +import org.aspectj.apache.bcel.verifier.*; +import javax.swing.event.*; /** * This class implements an adapter; it implements both a Swing ListModel and * a VerifierFactoryObserver. * - * @version $Id: VerifierFactoryListModel.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: VerifierFactoryListModel.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author Enver Haase */ public class VerifierFactoryListModel implements org.aspectj.apache.bcel.verifier.VerifierFactoryObserver, javax.swing.ListModel{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryObserver.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryObserver.java index c8f5a0532..16750b9b3 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryObserver.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifierFactoryObserver.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.verifier; * VerifierFactoryObserver instances are notified when new Verifier * instances are created. * - * @version $Id: VerifierFactoryObserver.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: VerifierFactoryObserver.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * * @see VerifierFactory#getVerifier(String) diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifyDialog.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifyDialog.java index 80ec01a23..f4ba545c9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifyDialog.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/VerifyDialog.java @@ -54,10 +54,11 @@ package org.aspectj.apache.bcel.verifier; * <http://www.apache.org/>. */ -import java.awt.Color; - -import org.aspectj.apache.bcel.Repository; +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; /** * A class for simple graphical class file verification. @@ -68,7 +69,7 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: VerifyDialog.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #main(String[]) * @see #VerifyDialog(String) diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/AssertionViolatedException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/AssertionViolatedException.java index 35d1d726e..7fff671a8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/AssertionViolatedException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/AssertionViolatedException.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.verifier.exc; * Instances of this class should never be thrown. When such an instance is thrown, * this is due to an INTERNAL ERROR of BCEL's class file verifier "JustIce". * - * @version $Id: AssertionViolatedException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: AssertionViolatedException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public final class AssertionViolatedException extends RuntimeException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/ClassConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/ClassConstraintException.java index 6a1030f4b..c156a9d6b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/ClassConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/ClassConstraintException.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.verifier.exc; * when a class file to verify does not pass the verification pass 2 as described * in the Java Virtual Machine specification, 2nd edition. * - * @version $Id: ClassConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ClassConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class ClassConstraintException extends VerificationException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/CodeConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/CodeConstraintException.java index ba57cbac3..9ef154fd5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/CodeConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/CodeConstraintException.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.verifier.exc; * a class file does not pass the verification pass 3. Note that the pass 3 used by * "JustIce" involves verification that is usually delayed to pass 4. * - * @version $Id: CodeConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: CodeConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public abstract class CodeConstraintException extends VerificationException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/InvalidMethodException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/InvalidMethodException.java index 5471b1eb3..04084567e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/InvalidMethodException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/InvalidMethodException.java @@ -57,7 +57,7 @@ package org.aspectj.apache.bcel.verifier.exc; * Instances of this class are thrown by BCEL's class file verifier "JustIce" * when the verification of a method is requested that does not exist. * - * @version $Id: InvalidMethodException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: InvalidMethodException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class InvalidMethodException extends RuntimeException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LinkingConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LinkingConstraintException.java index 8d9c1f443..41d7187cc 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LinkingConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LinkingConstraintException.java @@ -67,7 +67,7 @@ package org.aspectj.apache.bcel.verifier.exc; * and Resolution") of the above mentioned book. * <B>TODO: At this time, this class is not used in JustIce.</B> * - * @version $Id: LinkingConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LinkingConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LinkingConstraintException extends StructuralCodeConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LoadingException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LoadingException.java index 6c6601df0..ab4661639 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LoadingException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LoadingException.java @@ -58,7 +58,7 @@ package org.aspectj.apache.bcel.verifier.exc; * When loading a class file, BCEL will throw an instance of LoadingException if * the class file is malformed; so it is not conforming to the "Pass 1" verification * process as described in the Java Virtual Machine specification, 2nd. edition. - * @version $Id: LoadingException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LoadingException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LoadingException extends VerifierConstraintViolatedException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LocalVariableInfoInconsistentException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LocalVariableInfoInconsistentException.java index d3f4a0f01..ee52a9b92 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LocalVariableInfoInconsistentException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/LocalVariableInfoInconsistentException.java @@ -61,7 +61,7 @@ package org.aspectj.apache.bcel.verifier.exc; * LocalVariableTable entries in the Code attribute of a certain * Method object. * - * @version $Id: LocalVariableInfoInconsistentException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LocalVariableInfoInconsistentException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LocalVariableInfoInconsistentException extends ClassConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeConstraintException.java index c0261ac3c..e5ed87a0f 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeConstraintException.java @@ -61,7 +61,7 @@ package org.aspectj.apache.bcel.verifier.exc; * 2nd edition, 4.8.1, pages 133-137. The static constraints checking part of pass 3 * is called pass 3a in JustIce. * - * @version $Id: StaticCodeConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StaticCodeConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public abstract class StaticCodeConstraintException extends CodeConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionConstraintException.java index f796535b5..629ff6dfe 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionConstraintException.java @@ -64,7 +64,7 @@ package org.aspectj.apache.bcel.verifier.exc; * pass 3a and are described on page 134 in the Java Virtual Machine Specification, * Second Edition. * - * @version $Id: StaticCodeInstructionConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StaticCodeInstructionConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class StaticCodeInstructionConstraintException extends StaticCodeConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionOperandConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionOperandConstraintException.java index 09b5ded35..7a5fbabd5 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionOperandConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StaticCodeInstructionOperandConstraintException.java @@ -64,7 +64,7 @@ package org.aspectj.apache.bcel.verifier.exc; * pass 3a and are described on page 134-137 in the Java Virtual Machine Specification, * Second Edition. * - * @version $Id: StaticCodeInstructionOperandConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StaticCodeInstructionOperandConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class StaticCodeInstructionOperandConstraintException extends StaticCodeConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StructuralCodeConstraintException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StructuralCodeConstraintException.java index 98b264f8e..8f09a91a0 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StructuralCodeConstraintException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/StructuralCodeConstraintException.java @@ -63,7 +63,7 @@ package org.aspectj.apache.bcel.verifier.exc; * These are the constraints where data-flow analysis is needed to verify if they hold. * The data flow analysis of pass 3 is called pass 3b in JustIce. * - * @version $Id: StructuralCodeConstraintException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StructuralCodeConstraintException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class StructuralCodeConstraintException extends CodeConstraintException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/Utility.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/Utility.java index 17a7cae05..095ec3344 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/Utility.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/Utility.java @@ -58,7 +58,7 @@ import java.io.*; /** * A utility class providing convenience methods concerning Throwable instances. - * @version $Id: Utility.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Utility.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see java.lang.Throwable */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerificationException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerificationException.java index 6e695a36e..70bca7091 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerificationException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerificationException.java @@ -63,7 +63,7 @@ package org.aspectj.apache.bcel.verifier.exc; * edition, page 164, 5.4.1 where verification as a part of the linking process is * defined to be the verification happening in passes 2 and 3. * - * @version $Id: VerificationException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: VerificationException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public abstract class VerificationException extends VerifierConstraintViolatedException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerifierConstraintViolatedException.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerifierConstraintViolatedException.java index cf7f271fb..15ce45239 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerifierConstraintViolatedException.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/VerifierConstraintViolatedException.java @@ -62,7 +62,7 @@ package org.aspectj.apache.bcel.verifier.exc; * This is roughly equivalent to the VerifyError the JVM-internal verifiers * throw. * - * @version $Id: VerifierConstraintViolatedException.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: VerifierConstraintViolatedException.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public abstract class VerifierConstraintViolatedException extends RuntimeException{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/package.html b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/package.html index 4ebd82786..cfd38591b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/exc/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/package.html b/bcel-builder/src/org/aspectj/apache/bcel/verifier/package.html index 53a7b3079..b9213e330 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/DOUBLE_Upper.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/DOUBLE_Upper.java index 4ef6c1bc8..ed68a24a8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/DOUBLE_Upper.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/DOUBLE_Upper.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.generic.Type; /** * This class represents the upper half of a DOUBLE variable. - * @version $Id: DOUBLE_Upper.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: DOUBLE_Upper.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public final class DOUBLE_Upper extends Type{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/IntList.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/IntList.java index 39a211ec6..dce612d48 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/IntList.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/IntList.java @@ -59,7 +59,7 @@ import java.util.ArrayList; /** * A small utility class representing a set of basic int values. * - * @version $Id: IntList.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: IntList.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class IntList{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LONG_Upper.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LONG_Upper.java index 01cde3020..9b1bbeae4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LONG_Upper.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LONG_Upper.java @@ -59,7 +59,7 @@ import org.aspectj.apache.bcel.generic.Type; /** * This class represents the upper half of a LONG variable. - * @version $Id: LONG_Upper.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LONG_Upper.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public final class LONG_Upper extends Type{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariableInfo.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariableInfo.java index cb0fc7f36..443444e2e 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariableInfo.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariableInfo.java @@ -64,7 +64,7 @@ import java.util.Hashtable; * a given slot (== index). This information * often changes in course of byte code offsets. * - * @version $Id: LocalVariableInfo.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LocalVariableInfo.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LocalVariableInfo{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariablesInfo.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariablesInfo.java index ce26ec731..6f7a656b8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariablesInfo.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/LocalVariablesInfo.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; * the names and the types of the local variables in * a given method. * - * @version $Id: LocalVariablesInfo.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LocalVariablesInfo.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LocalVariablesInfo{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass1Verifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass1Verifier.java index 044748f78..3b30210ce 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass1Verifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass1Verifier.java @@ -54,7 +54,8 @@ package org.aspectj.apache.bcel.verifier.statics; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +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.*; @@ -66,7 +67,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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Pass1Verifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #do_verify() */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass2Verifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass2Verifier.java index 4a9e99d18..62bef2e02 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass2Verifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass2Verifier.java @@ -56,10 +56,42 @@ package org.aspectj.apache.bcel.verifier.statics; import org.aspectj.apache.bcel.Constants; import org.aspectj.apache.bcel.Repository; -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantDouble; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantFloat; +import org.aspectj.apache.bcel.classfile.ConstantInteger; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantLong; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +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.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.ExceptionTable; +import org.aspectj.apache.bcel.classfile.Field; +import org.aspectj.apache.bcel.classfile.InnerClass; +import org.aspectj.apache.bcel.classfile.InnerClasses; +import org.aspectj.apache.bcel.classfile.JavaClass; +import org.aspectj.apache.bcel.classfile.LineNumber; +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.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.*; @@ -73,7 +105,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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Pass2Verifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #do_verify() */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass3aVerifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass3aVerifier.java index 1a4c71d15..02658327a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass3aVerifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/Pass3aVerifier.java @@ -56,7 +56,29 @@ package org.aspectj.apache.bcel.verifier.statics; import org.aspectj.apache.bcel.*; import org.aspectj.apache.bcel.generic.*; -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Attribute; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.Constant; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantDouble; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantFloat; +import org.aspectj.apache.bcel.classfile.ConstantInteger; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantLong; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +import org.aspectj.apache.bcel.classfile.ConstantNameAndType; +import org.aspectj.apache.bcel.classfile.ConstantString; +import org.aspectj.apache.bcel.classfile.ConstantUtf8; +import org.aspectj.apache.bcel.classfile.Field; +import org.aspectj.apache.bcel.classfile.JavaClass; +import org.aspectj.apache.bcel.classfile.LineNumber; +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.*; @@ -67,7 +89,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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Pass3aVerifier.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #do_verify() */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/StringRepresentation.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/StringRepresentation.java index 21cff1ae8..55c7b5cd6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/StringRepresentation.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/StringRepresentation.java @@ -54,7 +54,40 @@ package org.aspectj.apache.bcel.verifier.statics; * <http://www.apache.org/>. */ -import org.aspectj.apache.bcel.classfile.*; +import org.aspectj.apache.bcel.classfile.Code; +import org.aspectj.apache.bcel.classfile.CodeException; +import org.aspectj.apache.bcel.classfile.ConstantClass; +import org.aspectj.apache.bcel.classfile.ConstantDouble; +import org.aspectj.apache.bcel.classfile.ConstantFieldref; +import org.aspectj.apache.bcel.classfile.ConstantFloat; +import org.aspectj.apache.bcel.classfile.ConstantInteger; +import org.aspectj.apache.bcel.classfile.ConstantInterfaceMethodref; +import org.aspectj.apache.bcel.classfile.ConstantLong; +import org.aspectj.apache.bcel.classfile.ConstantMethodref; +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.ConstantValue; +import org.aspectj.apache.bcel.classfile.Deprecated; +import org.aspectj.apache.bcel.classfile.ExceptionTable; +import org.aspectj.apache.bcel.classfile.Field; +import org.aspectj.apache.bcel.classfile.InnerClass; +import org.aspectj.apache.bcel.classfile.InnerClasses; +import org.aspectj.apache.bcel.classfile.JavaClass; +import org.aspectj.apache.bcel.classfile.LineNumber; +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.Node; +import org.aspectj.apache.bcel.classfile.Signature; +import org.aspectj.apache.bcel.classfile.SourceFile; +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.*; /** @@ -69,7 +102,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.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: StringRepresentation.java,v 1.2 2004/11/19 16:45:19 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{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/package.html b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/package.html index 6c917b8bc..403d492f8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/statics/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ControlFlowGraph.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ControlFlowGraph.java index 02f8c2523..e8091342a 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ControlFlowGraph.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ControlFlowGraph.java @@ -54,27 +54,15 @@ package org.aspectj.apache.bcel.verifier.structurals; * <http://www.apache.org/>. */ -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; +import org.aspectj.apache.bcel.generic.*; +import org.aspectj.apache.bcel.verifier.VerifierFactory; +import org.aspectj.apache.bcel.verifier.exc.*; +import java.util.*; /** * This class represents a control flow graph of a method. * - * @version $Id: ControlFlowGraph.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: ControlFlowGraph.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class ControlFlowGraph{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandler.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandler.java index b706bfc08..e715aa605 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandler.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandler.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.generic.*; * representing a subclass of java.lang.Throwable and the instruction * the handler starts off (represented by an InstructionContext). * - * @version $Id: ExceptionHandler.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ExceptionHandler.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class ExceptionHandler{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandlers.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandlers.java index 8a9e66778..a0754501d 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandlers.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExceptionHandlers.java @@ -61,7 +61,7 @@ import java.util.Hashtable; /** * This class allows easy access to ExceptionHandler objects. * - * @version $Id: ExceptionHandlers.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: ExceptionHandlers.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class ExceptionHandlers{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExecutionVisitor.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExecutionVisitor.java index 343f633e1..30c2e013b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExecutionVisitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/ExecutionVisitor.java @@ -55,13 +55,19 @@ 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.generic.*; +import org.aspectj.apache.bcel.verifier.Verifier; +import org.aspectj.apache.bcel.verifier.exc.*; +import java.util.ArrayList; +import java.util.Hashtable; /** * This Visitor class may be used for a type-based Java Virtual Machine @@ -86,7 +92,7 @@ import org.aspectj.apache.bcel.generic.*; * 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: ExecutionVisitor.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #visitDSTORE(DSTORE o) * @see InstConstraintVisitor @@ -748,8 +754,8 @@ public class ExecutionVisitor extends EmptyVisitor implements Visitor{ public void visitINVOKESPECIAL(INVOKESPECIAL o){ if (o.getMethodName(cpg).equals(Constants.CONSTRUCTOR_NAME)){ UninitializedObjectType t = (UninitializedObjectType) stack().peek(o.getArgumentTypes(cpg).length); - if (t == Frame._this){ - Frame._this = null; + if (t == frame._this){ + frame._this = null; } stack().initializeObject(t); locals().initializeObject(t); diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Frame.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Frame.java index 04a93af13..95bf14dd8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Frame.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Frame.java @@ -54,12 +54,15 @@ 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.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: Frame.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/GenericArray.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/GenericArray.java index 8b9632d4a..bee196904 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/GenericArray.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/GenericArray.java @@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.verifier.structurals; * has some of the properties arrays have. They implement java.lang.Cloneable * and java.io.Serializable and they extend java.lang.Object. * - * @version $Id: GenericArray.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: GenericArray.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class GenericArray extends java.lang.Object implements java.lang.Cloneable, java.io.Serializable{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstConstraintVisitor.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstConstraintVisitor.java index fec1baabd..5cd7b5510 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstConstraintVisitor.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstConstraintVisitor.java @@ -79,7 +79,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; * TODO: Currently, the JVM's behaviour concerning monitors (MONITORENTER, * MONITOREXIT) is not modeled in JustIce. * - * @version $Id: InstConstraintVisitor.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: InstConstraintVisitor.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see org.aspectj.apache.bcel.verifier.exc.StructuralCodeConstraintException * @see org.aspectj.apache.bcel.verifier.exc.LinkingConstraintException @@ -2576,7 +2576,7 @@ public class InstConstraintVisitor extends EmptyVisitor implements org.aspectj.a */ public void visitRETURN(RETURN o){ if (mg.getName().equals(Constants.CONSTRUCTOR_NAME)){// If we leave an <init> method - if ((Frame._this != null) && (!(mg.getClassName().equals(Type.OBJECT.getClassName()))) ) { + if ((frame._this != null) && (!(mg.getClassName().equals(Type.OBJECT.getClassName()))) ) { constraintViolated(o, "Leaving a constructor that itself did not call a constructor."); } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstructionContext.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstructionContext.java index 810c0b3e4..ffe567dc9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstructionContext.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/InstructionContext.java @@ -54,16 +54,16 @@ package org.aspectj.apache.bcel.verifier.structurals; * <http://www.apache.org/>. */ -import java.util.ArrayList; - import org.aspectj.apache.bcel.generic.InstructionHandle; +import java.util.ArrayList; +import java.util.Iterator; /** * An InstructionContext offers convenient access * to information like control flow successors and * such. * - * @version $Id: InstructionContext.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: InstructionContext.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public interface InstructionContext{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/LocalVariables.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/LocalVariables.java index e3ce99cec..44a690886 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/LocalVariables.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/LocalVariables.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.verifier.exc.*; * This class implements an array of local variables used for symbolic JVM * simulation. * - * @version $Id: LocalVariables.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: LocalVariables.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class LocalVariables{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/OperandStack.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/OperandStack.java index 333dcb312..5d41008b2 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/OperandStack.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/OperandStack.java @@ -63,7 +63,7 @@ import java.util.*; * [It's used an an operand stack substitute.] * Elements of this stack are org.aspectj.apache.bcel.generic.Type objects. * - * @version $Id: OperandStack.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: OperandStack.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class OperandStack{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Pass3bVerifier.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Pass3bVerifier.java index 584a33eb0..0388850f9 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Pass3bVerifier.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Pass3bVerifier.java @@ -54,30 +54,19 @@ package org.aspectj.apache.bcel.verifier.structurals; * <http://www.apache.org/>. */ -import java.io.PrintWriter; -import java.io.StringWriter; +import java.io.*; 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.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; +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.*; /** * This PassVerifier verifies a method of class file according to pass 3, @@ -86,7 +75,7 @@ import org.aspectj.apache.bcel.verifier.exc.VerifierConstraintViolatedException; * More detailed information is to be found at the do_verify() method's * documentation. * - * @version $Id: Pass3bVerifier.java,v 1.2 2004/11/18 15:07:05 aclement Exp $ + * @version $Id: Pass3bVerifier.java,v 1.3 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #do_verify() */ @@ -332,11 +321,11 @@ public final class Pass3bVerifier extends PassVerifier{ Frame f = new Frame(mg.getMaxLocals(),mg.getMaxStack()); if ( !mg.isStatic() ){ if (mg.getName().equals(Constants.CONSTRUCTOR_NAME)){ - Frame._this = new UninitializedObjectType(new ObjectType(jc.getClassName())); - f.getLocals().set(0, Frame._this); + f._this = new UninitializedObjectType(new ObjectType(jc.getClassName())); + f.getLocals().set(0, f._this); } else{ - Frame._this = null; + f._this = null; f.getLocals().set(0, new ObjectType(jc.getClassName())); } } diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutine.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutine.java index 186278f72..36a381ae6 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutine.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutine.java @@ -61,7 +61,7 @@ import org.aspectj.apache.bcel.generic.*; * Note that it is 'abused' to maintain the top-level code in a * consistent fashion, too. * - * @version $Id: Subroutine.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Subroutine.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public interface Subroutine{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutines.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutines.java index efe9fe6a3..6afbee473 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutines.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/Subroutines.java @@ -83,7 +83,7 @@ import java.util.Iterator; * * TODO: refer to the paper. * - * @version $Id: Subroutines.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: Subroutines.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> * @see #getTopLevel() */ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/UninitializedObjectType.java b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/UninitializedObjectType.java index ab08ac068..39d2405e4 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/UninitializedObjectType.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/UninitializedObjectType.java @@ -62,7 +62,7 @@ import org.aspectj.apache.bcel.generic.*; * Virtual Machine Specification, Second Edition, page 147: 4.9.4 for * more details. * - * @version $Id: UninitializedObjectType.java,v 1.1 2004/11/18 14:48:12 aclement Exp $ + * @version $Id: UninitializedObjectType.java,v 1.2 2004/11/19 16:45:19 aclement Exp $ * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A> */ public class UninitializedObjectType extends ReferenceType implements Constants{ diff --git a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/package.html b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/package.html index f471ca132..40232167c 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/package.html +++ b/bcel-builder/src/org/aspectj/apache/bcel/verifier/structurals/package.html @@ -2,7 +2,7 @@ <html> <head> <!-- -$Id: package.html,v 1.1 2004/11/18 14:48:12 aclement Exp $ +$Id: package.html,v 1.2 2004/11/19 16:45:19 aclement Exp $ --> </head> <body bgcolor="white"> |