You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by tc...@apache.org on 2006/03/15 12:33:43 UTC

svn commit: r386056 [10/28] - in /jakarta/bcel/trunk: examples/ examples/Mini/ src/java/org/apache/bcel/ src/java/org/apache/bcel/classfile/ src/java/org/apache/bcel/generic/ src/java/org/apache/bcel/util/ src/java/org/apache/bcel/verifier/ src/java/or...

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Visitor.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.classfile;
 
-
 /**
  * Interface to make use of the Visitor pattern programming style.
  * I.e. a class that implements this interface can traverse the contents of
@@ -26,40 +25,103 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public interface Visitor {
-  //public void visitAnnotation(Annotations obj);
-  //public void visitParameterAnnotation(ParameterAnnotations obj);
-  //public void visitAnnotationEntry(AnnotationEntry obj);
-  //public void visitAnnotationDefault(AnnotationDefault obj);
-  public void visitCode(Code obj);    
-  public void visitCodeException(CodeException obj);    
-  public void visitConstantClass(ConstantClass obj);    
-  public void visitConstantDouble(ConstantDouble obj);    
-  public void visitConstantFieldref(ConstantFieldref obj);    
-  public void visitConstantFloat(ConstantFloat obj);    
-  public void visitConstantInteger(ConstantInteger obj);    
-  public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj);    
-  public void visitConstantLong(ConstantLong obj);    
-  public void visitConstantMethodref(ConstantMethodref obj);    
-  public void visitConstantNameAndType(ConstantNameAndType obj);    
-  public void visitConstantPool(ConstantPool obj);    
-  public void visitConstantString(ConstantString obj);    
-  public void visitConstantUtf8(ConstantUtf8 obj);    
-  public void visitConstantValue(ConstantValue obj);    
-  public void visitDeprecated(Deprecated obj);    
-  public void visitExceptionTable(ExceptionTable obj);    
-  public void visitField(Field obj);    
-  public void visitInnerClass(InnerClass obj);    
-  public void visitInnerClasses(InnerClasses obj);    
-  public void visitJavaClass(JavaClass obj);    
-  public void visitLineNumber(LineNumber obj);    
-  public void visitLineNumberTable(LineNumberTable obj);    
-  public void visitLocalVariable(LocalVariable obj);    
-  public void visitLocalVariableTable(LocalVariableTable obj);    
-  public void visitMethod(Method obj);    
-  public void visitSignature(Signature obj);
-  public void visitSourceFile(SourceFile obj);    
-  public void visitSynthetic(Synthetic obj);    
-  public void visitUnknown(Unknown obj);    
-  public void visitStackMap(StackMap obj);
-  public void visitStackMapEntry(StackMapEntry obj);
+
+    //public void visitAnnotation(Annotations obj);
+    //public void visitParameterAnnotation(ParameterAnnotations obj);
+    //public void visitAnnotationEntry(AnnotationEntry obj);
+    //public void visitAnnotationDefault(AnnotationDefault obj);
+    public void visitCode( Code obj );
+
+
+    public void visitCodeException( CodeException obj );
+
+
+    public void visitConstantClass( ConstantClass obj );
+
+
+    public void visitConstantDouble( ConstantDouble obj );
+
+
+    public void visitConstantFieldref( ConstantFieldref obj );
+
+
+    public void visitConstantFloat( ConstantFloat obj );
+
+
+    public void visitConstantInteger( ConstantInteger obj );
+
+
+    public void visitConstantInterfaceMethodref( ConstantInterfaceMethodref obj );
+
+
+    public void visitConstantLong( ConstantLong obj );
+
+
+    public void visitConstantMethodref( ConstantMethodref obj );
+
+
+    public void visitConstantNameAndType( ConstantNameAndType obj );
+
+
+    public void visitConstantPool( ConstantPool obj );
+
+
+    public void visitConstantString( ConstantString obj );
+
+
+    public void visitConstantUtf8( ConstantUtf8 obj );
+
+
+    public void visitConstantValue( ConstantValue obj );
+
+
+    public void visitDeprecated( Deprecated obj );
+
+
+    public void visitExceptionTable( ExceptionTable obj );
+
+
+    public void visitField( Field obj );
+
+
+    public void visitInnerClass( InnerClass obj );
+
+
+    public void visitInnerClasses( InnerClasses obj );
+
+
+    public void visitJavaClass( JavaClass obj );
+
+
+    public void visitLineNumber( LineNumber obj );
+
+
+    public void visitLineNumberTable( LineNumberTable obj );
+
+
+    public void visitLocalVariable( LocalVariable obj );
+
+
+    public void visitLocalVariableTable( LocalVariableTable obj );
+
+
+    public void visitMethod( Method obj );
+
+
+    public void visitSignature( Signature obj );
+
+
+    public void visitSourceFile( SourceFile obj );
+
+
+    public void visitSynthetic( Synthetic obj );
+
+
+    public void visitUnknown( Unknown obj );
+
+
+    public void visitStackMap( StackMap obj );
+
+
+    public void visitStackMapEntry( StackMapEntry obj );
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AALOAD.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AALOAD.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AALOAD.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AALOAD.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * AALOAD - Load reference from array
  * <PRE>Stack: ..., arrayref, index -&gt; value</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class AALOAD extends ArrayInstruction implements StackProducer {
-  /** Load reference from array
-   */
-  public AALOAD() {
-    super(org.apache.bcel.Constants.AALOAD);
-  }
+
+    /** Load reference from array
+     */
+    public AALOAD() {
+        super(org.apache.bcel.Constants.AALOAD);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackProducer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitAALOAD(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackProducer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitAALOAD(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AASTORE.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AASTORE.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AASTORE.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AASTORE.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * AASTORE -  Store into reference array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class AASTORE extends ArrayInstruction implements StackConsumer {
-  /** Store into reference array
-   */
-  public AASTORE() {
-    super(org.apache.bcel.Constants.AASTORE);
-  }
+
+    /** Store into reference array
+     */
+    public AASTORE() {
+        super(org.apache.bcel.Constants.AASTORE);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackConsumer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitAASTORE(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackConsumer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitAASTORE(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ACONST_NULL.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ACONST_NULL.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ACONST_NULL.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ACONST_NULL.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ACONST_NULL - Push null reference
  * <PRE>Stack: ... -&gt; ..., null</PRE>
@@ -24,34 +23,35 @@
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public class ACONST_NULL extends Instruction
-  implements PushInstruction, TypedInstruction {
-  /** 
-   * Push null reference
-   */
-  public ACONST_NULL() {
-    super(org.apache.bcel.Constants.ACONST_NULL, (short)1);
-  }
-
-  /** @return Type.NULL
-   */
-  public Type getType(ConstantPoolGen cp) {
-    return Type.NULL;
-  }
-
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackProducer(this);
-    v.visitPushInstruction(this);
-    v.visitTypedInstruction(this);
-    v.visitACONST_NULL(this);
-  }
+public class ACONST_NULL extends Instruction implements PushInstruction, TypedInstruction {
+
+    /** 
+     * Push null reference
+     */
+    public ACONST_NULL() {
+        super(org.apache.bcel.Constants.ACONST_NULL, (short) 1);
+    }
+
+
+    /** @return Type.NULL
+     */
+    public Type getType( ConstantPoolGen cp ) {
+        return Type.NULL;
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackProducer(this);
+        v.visitPushInstruction(this);
+        v.visitTypedInstruction(this);
+        v.visitACONST_NULL(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ALOAD.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ALOAD.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ALOAD.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ALOAD.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ALOAD - Load reference from local variable
  * <PRE>Stack: ... -&gt; ..., objectref</PRE>
@@ -25,31 +24,34 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class ALOAD extends LoadInstruction {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  ALOAD() {
-    super(org.apache.bcel.Constants.ALOAD, org.apache.bcel.Constants.ALOAD_0);
-  }
-
-  /** Load reference from local variable
-   * @param n index of local variable
-   */
-  public ALOAD(int n) {
-    super(org.apache.bcel.Constants.ALOAD, org.apache.bcel.Constants.ALOAD_0, n);
-  }
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    super.accept(v);
-    v.visitALOAD(this);
-  }
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    ALOAD() {
+        super(org.apache.bcel.Constants.ALOAD, org.apache.bcel.Constants.ALOAD_0);
+    }
+
+
+    /** Load reference from local variable
+     * @param n index of local variable
+     */
+    public ALOAD(int n) {
+        super(org.apache.bcel.Constants.ALOAD, org.apache.bcel.Constants.ALOAD_0, n);
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        super.accept(v);
+        v.visitALOAD(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ANEWARRAY.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ANEWARRAY.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ANEWARRAY.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ANEWARRAY.java Wed Mar 15 03:31:56 2006
@@ -13,7 +13,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import org.apache.bcel.ExceptionConstants;
@@ -25,53 +25,55 @@
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public class ANEWARRAY extends CPInstruction
-  implements LoadClass, AllocationInstruction, ExceptionThrower, StackConsumer, StackProducer {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  ANEWARRAY() {}
-
-  public ANEWARRAY(int index) {
-    super(org.apache.bcel.Constants.ANEWARRAY, index);
-  }
-
-  public Class[] getExceptions(){
-    Class[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
-
-    System.arraycopy(ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0,
-		     cs, 0, ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
-    cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] =
-      ExceptionConstants.NEGATIVE_ARRAY_SIZE_EXCEPTION;
-    return cs;
-  }
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitLoadClass(this);
-    v.visitAllocationInstruction(this);
-    v.visitExceptionThrower(this);
-    v.visitStackProducer(this);
-    v.visitTypedInstruction(this);
-    v.visitCPInstruction(this);
-    v.visitANEWARRAY(this);
-  }
-
-  public ObjectType getLoadClassType(ConstantPoolGen cpg) {
-    Type t = getType(cpg);
-    
-    if (t instanceof ArrayType){
-      t = ((ArrayType) t).getBasicType();
+public class ANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction,
+        ExceptionThrower, StackConsumer, StackProducer {
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    ANEWARRAY() {
+    }
+
+
+    public ANEWARRAY(int index) {
+        super(org.apache.bcel.Constants.ANEWARRAY, index);
+    }
+
+
+    public Class[] getExceptions() {
+        Class[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
+        System.arraycopy(ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0, cs, 0,
+                ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
+        cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] = ExceptionConstants.NEGATIVE_ARRAY_SIZE_EXCEPTION;
+        return cs;
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitLoadClass(this);
+        v.visitAllocationInstruction(this);
+        v.visitExceptionThrower(this);
+        v.visitStackProducer(this);
+        v.visitTypedInstruction(this);
+        v.visitCPInstruction(this);
+        v.visitANEWARRAY(this);
+    }
+
+
+    public ObjectType getLoadClassType( ConstantPoolGen cpg ) {
+        Type t = getType(cpg);
+        if (t instanceof ArrayType) {
+            t = ((ArrayType) t).getBasicType();
+        }
+        return (t instanceof ObjectType) ? (ObjectType) t : null;
     }
-    
-    return (t instanceof ObjectType)? (ObjectType) t : null;
-  }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARETURN.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARETURN.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARETURN.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARETURN.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ARETURN -  Return reference from method
  * <PRE>Stack: ..., objectref -&gt; &lt;empty&gt;</PRE>
@@ -25,27 +24,28 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class ARETURN extends ReturnInstruction {
-  /** 
-   * Return reference from method
-   */
-  public ARETURN() {
-    super(org.apache.bcel.Constants.ARETURN);
-  }
+
+    /** 
+     * Return reference from method
+     */
+    public ARETURN() {
+        super(org.apache.bcel.Constants.ARETURN);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitStackConsumer(this);
-    v.visitReturnInstruction(this);
-    v.visitARETURN(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitStackConsumer(this);
+        v.visitReturnInstruction(this);
+        v.visitARETURN(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARRAYLENGTH.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARRAYLENGTH.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARRAYLENGTH.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ARRAYLENGTH.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ARRAYLENGTH -  Get length of array
  * <PRE>Stack: ..., arrayref -&gt; ..., length</PRE>
@@ -24,32 +23,35 @@
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public class ARRAYLENGTH extends Instruction
-  implements ExceptionThrower, StackProducer {
-  /** Get length of array
-   */
-  public ARRAYLENGTH() {
-    super(org.apache.bcel.Constants.ARRAYLENGTH, (short)1);
-  }
-
-  /** @return exceptions this instruction may cause
-   */
-  public Class[] getExceptions() {
-    return new Class[] { org.apache.bcel.ExceptionConstants.NULL_POINTER_EXCEPTION };
-  }
-
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitExceptionThrower(this);
-    v.visitStackProducer(this);
-    v.visitARRAYLENGTH(this);
-  }
+public class ARRAYLENGTH extends Instruction implements ExceptionThrower, StackProducer {
+
+    /** Get length of array
+     */
+    public ARRAYLENGTH() {
+        super(org.apache.bcel.Constants.ARRAYLENGTH, (short) 1);
+    }
+
+
+    /** @return exceptions this instruction may cause
+     */
+    public Class[] getExceptions() {
+        return new Class[] {
+            org.apache.bcel.ExceptionConstants.NULL_POINTER_EXCEPTION
+        };
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitExceptionThrower(this);
+        v.visitStackProducer(this);
+        v.visitARRAYLENGTH(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ASTORE.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ASTORE.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ASTORE.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ASTORE.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ASTORE - Store reference into local variable
  * <PRE>Stack ..., objectref -&gt; ... </PRE>
@@ -25,31 +24,34 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class ASTORE extends StoreInstruction {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  ASTORE() {
-    super(org.apache.bcel.Constants.ASTORE, org.apache.bcel.Constants.ASTORE_0);
-  }
-
-  /** Store reference into local variable
-   * @param n index of local variable
-   */
-  public ASTORE(int n) {
-    super(org.apache.bcel.Constants.ASTORE, org.apache.bcel.Constants.ASTORE_0, n);
-  }
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    super.accept(v);
-    v.visitASTORE(this);
-  }
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    ASTORE() {
+        super(org.apache.bcel.Constants.ASTORE, org.apache.bcel.Constants.ASTORE_0);
+    }
+
+
+    /** Store reference into local variable
+     * @param n index of local variable
+     */
+    public ASTORE(int n) {
+        super(org.apache.bcel.Constants.ASTORE, org.apache.bcel.Constants.ASTORE_0, n);
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        super.accept(v);
+        v.visitASTORE(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ATHROW.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ATHROW.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ATHROW.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ATHROW.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * ATHROW -  Throw exception
  * <PRE>Stack: ..., objectref -&gt; objectref</PRE>
@@ -25,31 +24,35 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class ATHROW extends Instruction implements UnconditionalBranch, ExceptionThrower {
-  /** 
-   *  Throw exception
-   */
-  public ATHROW() {
-    super(org.apache.bcel.Constants.ATHROW, (short)1);
-  }
-
-  /** @return exceptions this instruction may cause
-   */
-  public Class[] getExceptions() {
-    return new Class[] { org.apache.bcel.ExceptionConstants.THROWABLE };
-  }
-
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitUnconditionalBranch(this);
-    v.visitExceptionThrower(this);
-    v.visitATHROW(this);
-  }
+
+    /** 
+     *  Throw exception
+     */
+    public ATHROW() {
+        super(org.apache.bcel.Constants.ATHROW, (short) 1);
+    }
+
+
+    /** @return exceptions this instruction may cause
+     */
+    public Class[] getExceptions() {
+        return new Class[] {
+            org.apache.bcel.ExceptionConstants.THROWABLE
+        };
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitUnconditionalBranch(this);
+        v.visitExceptionThrower(this);
+        v.visitATHROW(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AllocationInstruction.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AllocationInstruction.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AllocationInstruction.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/AllocationInstruction.java Wed Mar 15 03:31:56 2006
@@ -13,15 +13,14 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /**
  * Denote family of instructions that allocates space in the heap.
  *
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public interface AllocationInstruction {}
-
+public interface AllocationInstruction {
+}

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArithmeticInstruction.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArithmeticInstruction.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArithmeticInstruction.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArithmeticInstruction.java Wed Mar 15 03:31:56 2006
@@ -13,57 +13,82 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import org.apache.bcel.Constants;
+
 /**
  * Super class for the family of arithmetic instructions.
  *
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public abstract class ArithmeticInstruction extends Instruction
-  implements TypedInstruction, StackProducer, StackConsumer {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  ArithmeticInstruction() {}
-
-  /**
-   * @param opcode of instruction
-   */
-  protected ArithmeticInstruction(short opcode) {
-    super(opcode, (short)1);
-  }
-
-  /** @return type associated with the instruction
-   */
-  public Type getType(ConstantPoolGen cp) {
-    switch(opcode) {
-    case Constants.DADD: case Constants.DDIV: case Constants.DMUL:
-    case Constants.DNEG: case Constants.DREM: case Constants.DSUB:
-      return Type.DOUBLE;
-
-    case Constants.FADD: case Constants.FDIV: case Constants.FMUL:
-    case Constants.FNEG: case Constants.FREM: case Constants.FSUB:
-      return Type.FLOAT;
-
-    case Constants.IADD: case Constants.IAND: case Constants.IDIV:
-    case Constants.IMUL: case Constants.INEG: case Constants.IOR: case Constants.IREM:
-    case Constants.ISHL: case Constants.ISHR: case Constants.ISUB:
-    case Constants.IUSHR: case Constants.IXOR:
-      return Type.INT;
-
-    case Constants.LADD: case Constants.LAND: case Constants.LDIV:
-    case Constants.LMUL: case Constants.LNEG: case Constants.LOR: case Constants.LREM:
-    case Constants.LSHL: case Constants.LSHR: case Constants.LSUB:
-    case Constants.LUSHR: case Constants.LXOR:
-      return Type.LONG;
+public abstract class ArithmeticInstruction extends Instruction implements TypedInstruction,
+        StackProducer, StackConsumer {
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    ArithmeticInstruction() {
+    }
+
+
+    /**
+     * @param opcode of instruction
+     */
+    protected ArithmeticInstruction(short opcode) {
+        super(opcode, (short) 1);
+    }
+
 
-    default: // Never reached
-      throw new ClassGenException("Unknown type " + opcode);
+    /** @return type associated with the instruction
+     */
+    public Type getType( ConstantPoolGen cp ) {
+        switch (opcode) {
+            case Constants.DADD:
+            case Constants.DDIV:
+            case Constants.DMUL:
+            case Constants.DNEG:
+            case Constants.DREM:
+            case Constants.DSUB:
+                return Type.DOUBLE;
+            case Constants.FADD:
+            case Constants.FDIV:
+            case Constants.FMUL:
+            case Constants.FNEG:
+            case Constants.FREM:
+            case Constants.FSUB:
+                return Type.FLOAT;
+            case Constants.IADD:
+            case Constants.IAND:
+            case Constants.IDIV:
+            case Constants.IMUL:
+            case Constants.INEG:
+            case Constants.IOR:
+            case Constants.IREM:
+            case Constants.ISHL:
+            case Constants.ISHR:
+            case Constants.ISUB:
+            case Constants.IUSHR:
+            case Constants.IXOR:
+                return Type.INT;
+            case Constants.LADD:
+            case Constants.LAND:
+            case Constants.LDIV:
+            case Constants.LMUL:
+            case Constants.LNEG:
+            case Constants.LOR:
+            case Constants.LREM:
+            case Constants.LSHL:
+            case Constants.LSHR:
+            case Constants.LSUB:
+            case Constants.LUSHR:
+            case Constants.LXOR:
+                return Type.LONG;
+            default: // Never reached
+                throw new ClassGenException("Unknown type " + opcode);
+        }
     }
-  }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayInstruction.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayInstruction.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayInstruction.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayInstruction.java Wed Mar 15 03:31:56 2006
@@ -13,57 +13,69 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /**
  * Super class for instructions dealing with array access such as IALOAD.
  *
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public abstract class ArrayInstruction extends Instruction
-  implements ExceptionThrower, TypedInstruction {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  ArrayInstruction() {}
-
-  /**
-   * @param opcode of instruction
-   */
-  protected ArrayInstruction(short opcode) {
-    super(opcode, (short)1);
-  }
-
-  public Class[] getExceptions() {
-    return org.apache.bcel.ExceptionConstants.EXCS_ARRAY_EXCEPTION;
-  }
-
-  /** @return type associated with the instruction
-   */
-  public Type getType(ConstantPoolGen cp) {
-    switch(opcode) {
-    case org.apache.bcel.Constants.IALOAD: case org.apache.bcel.Constants.IASTORE: 
-      return Type.INT;
-    case org.apache.bcel.Constants.CALOAD: case org.apache.bcel.Constants.CASTORE: 
-      return Type.CHAR;
-    case org.apache.bcel.Constants.BALOAD: case org.apache.bcel.Constants.BASTORE:
-      return Type.BYTE;
-    case org.apache.bcel.Constants.SALOAD: case org.apache.bcel.Constants.SASTORE:
-      return Type.SHORT;
-    case org.apache.bcel.Constants.LALOAD: case org.apache.bcel.Constants.LASTORE: 
-      return Type.LONG;
-    case org.apache.bcel.Constants.DALOAD: case org.apache.bcel.Constants.DASTORE: 
-      return Type.DOUBLE;
-    case org.apache.bcel.Constants.FALOAD: case org.apache.bcel.Constants.FASTORE: 
-      return Type.FLOAT;
-    case org.apache.bcel.Constants.AALOAD: case org.apache.bcel.Constants.AASTORE:
-      return Type.OBJECT;
+public abstract class ArrayInstruction extends Instruction implements ExceptionThrower,
+        TypedInstruction {
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    ArrayInstruction() {
+    }
+
+
+    /**
+     * @param opcode of instruction
+     */
+    protected ArrayInstruction(short opcode) {
+        super(opcode, (short) 1);
+    }
+
+
+    public Class[] getExceptions() {
+        return org.apache.bcel.ExceptionConstants.EXCS_ARRAY_EXCEPTION;
+    }
+
 
-    default: throw new ClassGenException("Oops: unknown case in switch" + opcode);
+    /** @return type associated with the instruction
+     */
+    public Type getType( ConstantPoolGen cp ) {
+        switch (opcode) {
+            case org.apache.bcel.Constants.IALOAD:
+            case org.apache.bcel.Constants.IASTORE:
+                return Type.INT;
+            case org.apache.bcel.Constants.CALOAD:
+            case org.apache.bcel.Constants.CASTORE:
+                return Type.CHAR;
+            case org.apache.bcel.Constants.BALOAD:
+            case org.apache.bcel.Constants.BASTORE:
+                return Type.BYTE;
+            case org.apache.bcel.Constants.SALOAD:
+            case org.apache.bcel.Constants.SASTORE:
+                return Type.SHORT;
+            case org.apache.bcel.Constants.LALOAD:
+            case org.apache.bcel.Constants.LASTORE:
+                return Type.LONG;
+            case org.apache.bcel.Constants.DALOAD:
+            case org.apache.bcel.Constants.DASTORE:
+                return Type.DOUBLE;
+            case org.apache.bcel.Constants.FALOAD:
+            case org.apache.bcel.Constants.FASTORE:
+                return Type.FLOAT;
+            case org.apache.bcel.Constants.AALOAD:
+            case org.apache.bcel.Constants.AASTORE:
+                return Type.OBJECT;
+            default:
+                throw new ClassGenException("Oops: unknown case in switch" + opcode);
+        }
     }
-  }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayType.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayType.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayType.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/ArrayType.java Wed Mar 15 03:31:56 2006
@@ -13,7 +13,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import org.apache.bcel.Constants;
@@ -25,96 +25,103 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public final class ArrayType extends ReferenceType {
-  private int  dimensions;
-  private Type basic_type;
 
-  /**
-   * Convenience constructor for array type, e.g. int[]
-   *
-   * @param type array type, e.g. T_INT
-   */ 
-  public ArrayType(byte type, int dimensions) {
-    this(BasicType.getType(type), dimensions);
-  }
-
-  /**
-   * Convenience constructor for reference array type, e.g. Object[]
-   *
-   * @param class_name complete name of class (java.lang.String, e.g.)
-   */ 
-  public ArrayType(String class_name, int dimensions) {
-    this(new ObjectType(class_name), dimensions);
-  }
-
-  /**
-   * Constructor for array of given type
-   *
-   * @param type type of array (may be an array itself)
-   */ 
-  public ArrayType(Type type, int dimensions) {
-    super(Constants.T_ARRAY, "<dummy>");
-
-    if((dimensions < 1) || (dimensions > Constants.MAX_BYTE))
-      throw new ClassGenException("Invalid number of dimensions: " + dimensions);
-
-    switch(type.getType()) {
-    case Constants.T_ARRAY:
-      ArrayType array = (ArrayType)type;
-      this.dimensions = dimensions + array.dimensions;
-      basic_type      = array.basic_type;
-      break;
-      
-    case Constants.T_VOID:
-      throw new ClassGenException("Invalid type: void[]");
-
-    default: // Basic type or reference
-      this.dimensions = dimensions;
-      basic_type = type;
-      break;
-    }
-
-    StringBuffer buf = new StringBuffer();
-    for(int i=0; i < this.dimensions; i++)
-      buf.append('[');
-
-    buf.append(basic_type.getSignature());
-
-    signature = buf.toString();
-  }
-
-  /**
-   * @return basic type of array, i.e., for int[][][] the basic type is int
-   */
-  public Type getBasicType() {
-    return basic_type;
-  }
-
-  /**
-   * @return element type of array, i.e., for int[][][] the element type is int[][]
-   */
-  public Type getElementType() {
-    if(dimensions == 1)
-      return basic_type;
-
-    return new ArrayType(basic_type, dimensions - 1);
-  }
-
-  /** @return number of dimensions of array
-   */
-  public int getDimensions() { return dimensions; }
-
-  /** @return a hash code value for the object.
-   */
-  public int hashCode() { return basic_type.hashCode() ^ dimensions; }
-
-  /** @return true if both type objects refer to the same array type.
-   */
-  public boolean equals(Object _type) {
-    if(_type instanceof ArrayType) {
-      ArrayType array = (ArrayType)_type;
-      return (array.dimensions == dimensions) && array.basic_type.equals(basic_type);
-    }
-    
-    return false;
-  }
+    private int dimensions;
+    private Type basic_type;
+
+
+    /**
+     * Convenience constructor for array type, e.g. int[]
+     *
+     * @param type array type, e.g. T_INT
+     */
+    public ArrayType(byte type, int dimensions) {
+        this(BasicType.getType(type), dimensions);
+    }
+
+
+    /**
+     * Convenience constructor for reference array type, e.g. Object[]
+     *
+     * @param class_name complete name of class (java.lang.String, e.g.)
+     */
+    public ArrayType(String class_name, int dimensions) {
+        this(new ObjectType(class_name), dimensions);
+    }
+
+
+    /**
+     * Constructor for array of given type
+     *
+     * @param type type of array (may be an array itself)
+     */
+    public ArrayType(Type type, int dimensions) {
+        super(Constants.T_ARRAY, "<dummy>");
+        if ((dimensions < 1) || (dimensions > Constants.MAX_BYTE)) {
+            throw new ClassGenException("Invalid number of dimensions: " + dimensions);
+        }
+        switch (type.getType()) {
+            case Constants.T_ARRAY:
+                ArrayType array = (ArrayType) type;
+                this.dimensions = dimensions + array.dimensions;
+                basic_type = array.basic_type;
+                break;
+            case Constants.T_VOID:
+                throw new ClassGenException("Invalid type: void[]");
+            default: // Basic type or reference
+                this.dimensions = dimensions;
+                basic_type = type;
+                break;
+        }
+        StringBuffer buf = new StringBuffer();
+        for (int i = 0; i < this.dimensions; i++) {
+            buf.append('[');
+        }
+        buf.append(basic_type.getSignature());
+        signature = buf.toString();
+    }
+
+
+    /**
+     * @return basic type of array, i.e., for int[][][] the basic type is int
+     */
+    public Type getBasicType() {
+        return basic_type;
+    }
+
+
+    /**
+     * @return element type of array, i.e., for int[][][] the element type is int[][]
+     */
+    public Type getElementType() {
+        if (dimensions == 1) {
+            return basic_type;
+        }
+        return new ArrayType(basic_type, dimensions - 1);
+    }
+
+
+    /** @return number of dimensions of array
+     */
+    public int getDimensions() {
+        return dimensions;
+    }
+
+
+    /** @return a hash code value for the object.
+     */
+    public int hashCode() {
+        return basic_type.hashCode() ^ dimensions;
+    }
+
+
+    /** @return true if both type objects refer to the same array type.
+     */
+    public boolean equals( Object _type ) {
+        if (_type instanceof ArrayType) {
+            ArrayType array = (ArrayType) _type;
+            return (array.dimensions == dimensions) && array.basic_type.equals(basic_type);
+        }
+        return false;
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BALOAD.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BALOAD.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BALOAD.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BALOAD.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * BALOAD - Load byte or boolean from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class BALOAD extends ArrayInstruction implements StackProducer {
-  /** Load byte or boolean from array
-   */
-  public BALOAD() {
-    super(org.apache.bcel.Constants.BALOAD);
-  }
+
+    /** Load byte or boolean from array
+     */
+    public BALOAD() {
+        super(org.apache.bcel.Constants.BALOAD);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackProducer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitBALOAD(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackProducer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitBALOAD(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BASTORE.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BASTORE.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BASTORE.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BASTORE.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * BASTORE -  Store into byte or boolean array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class BASTORE extends ArrayInstruction implements StackConsumer {
-  /** Store byte or boolean into array
-   */
-  public BASTORE() {
-    super(org.apache.bcel.Constants.BASTORE);
-  }
+
+    /** Store byte or boolean into array
+     */
+    public BASTORE() {
+        super(org.apache.bcel.Constants.BASTORE);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackConsumer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitBASTORE(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackConsumer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitBASTORE(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BIPUSH.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BIPUSH.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BIPUSH.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BIPUSH.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 import java.io.DataOutputStream;
 import java.io.IOException;
 import org.apache.bcel.util.ByteSequence;
@@ -30,66 +29,77 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class BIPUSH extends Instruction implements ConstantPushInstruction {
-  private byte b;
 
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  BIPUSH() {}
-
-  /** Push byte on stack
-   */
-  public BIPUSH(byte b) {
-    super(org.apache.bcel.Constants.BIPUSH, (short)2);
-    this.b = b;
-  }
-
-  /**
-   * Dump instruction as byte code to stream out.
-   */
-  public void dump(DataOutputStream out) throws IOException {
-    super.dump(out);
-    out.writeByte(b);
-  }
-
-  /**
-   * @return mnemonic for instruction
-   */
-  public String toString(boolean verbose) {
-    return super.toString(verbose) + " " + b;
-  }
-
-  /**
-   * Read needed data (e.g. index) from file.
-   */
-  protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
-  {
-    length = 2;
-    b      = bytes.readByte();
-  }
-
-  public Number getValue() { return new Integer(b); }
-
-  /** @return Type.BYTE
-   */
-  public Type getType(ConstantPoolGen cp) {
-    return Type.BYTE;
-  }
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitPushInstruction(this);
-    v.visitStackProducer(this);
-    v.visitTypedInstruction(this);
-    v.visitConstantPushInstruction(this);
-    v.visitBIPUSH(this);
-  }
+    private byte b;
+
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    BIPUSH() {
+    }
+
+
+    /** Push byte on stack
+     */
+    public BIPUSH(byte b) {
+        super(org.apache.bcel.Constants.BIPUSH, (short) 2);
+        this.b = b;
+    }
+
+
+    /**
+     * Dump instruction as byte code to stream out.
+     */
+    public void dump( DataOutputStream out ) throws IOException {
+        super.dump(out);
+        out.writeByte(b);
+    }
+
+
+    /**
+     * @return mnemonic for instruction
+     */
+    public String toString( boolean verbose ) {
+        return super.toString(verbose) + " " + b;
+    }
+
+
+    /**
+     * Read needed data (e.g. index) from file.
+     */
+    protected void initFromFile( ByteSequence bytes, boolean wide ) throws IOException {
+        length = 2;
+        b = bytes.readByte();
+    }
+
+
+    public Number getValue() {
+        return new Integer(b);
+    }
+
+
+    /** @return Type.BYTE
+     */
+    public Type getType( ConstantPoolGen cp ) {
+        return Type.BYTE;
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitPushInstruction(this);
+        v.visitStackProducer(this);
+        v.visitTypedInstruction(this);
+        v.visitConstantPushInstruction(this);
+        v.visitBIPUSH(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BREAKPOINT.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BREAKPOINT.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BREAKPOINT.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BREAKPOINT.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /**
  * BREAKPOINT, JVM dependent, ignored by default
  *
@@ -24,19 +23,21 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class BREAKPOINT extends Instruction {
-  public BREAKPOINT() {
-    super(org.apache.bcel.Constants.BREAKPOINT, (short)1);
-  }
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitBREAKPOINT(this);
-  }
+    public BREAKPOINT() {
+        super(org.apache.bcel.Constants.BREAKPOINT, (short) 1);
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitBREAKPOINT(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BasicType.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BasicType.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BasicType.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BasicType.java Wed Mar 15 03:31:56 2006
@@ -13,7 +13,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import org.apache.bcel.Constants;
@@ -25,44 +25,57 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public final class BasicType extends Type {
-  /**
-   * Constructor for basic types such as int, long, `void'
-   *
-   * @param type one of T_INT, T_BOOLEAN, ..., T_VOID
-   * @see org.apache.bcel.Constants
-   */
-  BasicType(byte type) {
-    super(type, Constants.SHORT_TYPE_NAMES[type]);
-
-    if((type < Constants.T_BOOLEAN) || (type > Constants.T_VOID))
-      throw new ClassGenException("Invalid type: " + type);
-  }
-
-  public static final BasicType getType(byte type) {
-    switch(type) {
-    case Constants.T_VOID:    return VOID;
-    case Constants.T_BOOLEAN: return BOOLEAN;
-    case Constants.T_BYTE:    return BYTE;
-    case Constants.T_SHORT:   return SHORT;
-    case Constants.T_CHAR:    return CHAR;
-    case Constants.T_INT:     return INT;
-    case Constants.T_LONG:    return LONG;
-    case Constants.T_DOUBLE:  return DOUBLE;
-    case Constants.T_FLOAT:   return FLOAT;
 
-    default:
-      throw new ClassGenException("Invalid type: " + type);
+    /**
+     * Constructor for basic types such as int, long, `void'
+     *
+     * @param type one of T_INT, T_BOOLEAN, ..., T_VOID
+     * @see org.apache.bcel.Constants
+     */
+    BasicType(byte type) {
+        super(type, Constants.SHORT_TYPE_NAMES[type]);
+        if ((type < Constants.T_BOOLEAN) || (type > Constants.T_VOID)) {
+            throw new ClassGenException("Invalid type: " + type);
+        }
     }
-  }
 
-  /** @return a hash code value for the object.
-   */
-  public int hashCode() { return type; }
-
-  /** @return true if both type objects refer to the same type
-   */
-  public boolean equals(Object _type) {
-    return (_type instanceof BasicType)?
-      ((BasicType)_type).type == this.type : false;
-  }
+
+    public static final BasicType getType( byte type ) {
+        switch (type) {
+            case Constants.T_VOID:
+                return VOID;
+            case Constants.T_BOOLEAN:
+                return BOOLEAN;
+            case Constants.T_BYTE:
+                return BYTE;
+            case Constants.T_SHORT:
+                return SHORT;
+            case Constants.T_CHAR:
+                return CHAR;
+            case Constants.T_INT:
+                return INT;
+            case Constants.T_LONG:
+                return LONG;
+            case Constants.T_DOUBLE:
+                return DOUBLE;
+            case Constants.T_FLOAT:
+                return FLOAT;
+            default:
+                throw new ClassGenException("Invalid type: " + type);
+        }
+    }
+
+
+    /** @return a hash code value for the object.
+     */
+    public int hashCode() {
+        return type;
+    }
+
+
+    /** @return true if both type objects refer to the same type
+     */
+    public boolean equals( Object _type ) {
+        return (_type instanceof BasicType) ? ((BasicType) _type).type == this.type : false;
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchHandle.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchHandle.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchHandle.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchHandle.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /**
  * BranchHandle is returned by specialized InstructionList.append() whenever a
  * BranchInstruction is appended. This is useful when the target of this
@@ -30,84 +29,93 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public final class BranchHandle extends InstructionHandle {
-  private BranchInstruction bi; // An alias in fact, but saves lots of casts
 
-  private BranchHandle(BranchInstruction i) {
-    super(i);
-    bi = i;
-  }
-
-  /** Factory methods.
-   */
-  private static BranchHandle bh_list = null; // List of reusable handles
-
-  static final BranchHandle getBranchHandle(BranchInstruction i) {
-    if(bh_list == null)
-      return new BranchHandle(i);
-    
-    BranchHandle bh = bh_list;
-    bh_list = (BranchHandle)bh.next;
-
-    bh.setInstruction(i);
-
-    return bh;
-  }
-  
-  /** Handle adds itself to the list of resuable handles.
-   */
-  protected void addHandle() {
-    next    = bh_list;
-    bh_list = this;
-  }
-
-  /* Override InstructionHandle methods: delegate to branch instruction.
-   * Through this overriding all access to the private i_position field should
-   * be prevented.
-   */
-  public int getPosition() { return bi.position; }
-
-  void setPosition(int pos) {
-    i_position = bi.position = pos;
-  }
-
-  protected int updatePosition(int offset, int max_offset) {
-    int x = bi.updatePosition(offset, max_offset);
-    i_position = bi.position;
-    return x;
-  }
-
-  /**
-   * Pass new target to instruction.
-   */
-  public void setTarget(InstructionHandle ih) {
-    bi.setTarget(ih);
-  }
-
-  /**
-   * Update target of instruction.
-   */
-  public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
-    bi.updateTarget(old_ih, new_ih);
-  }
-
-  /**
-   * @return target of instruction.
-   */
-  public InstructionHandle getTarget() {
-    return bi.getTarget();
-  }
-
-  /** 
-   * Set new contents. Old instruction is disposed and may not be used anymore.
-   */
-  public void setInstruction(Instruction i) {
-    super.setInstruction(i);
-
-    if(!(i instanceof BranchInstruction))
-      throw new ClassGenException("Assigning " + i +
-				  " to branch handle which is not a branch instruction");
+    private BranchInstruction bi; // An alias in fact, but saves lots of casts
 
-    bi = (BranchInstruction)i;
-  }
-}
 
+    private BranchHandle(BranchInstruction i) {
+        super(i);
+        bi = i;
+    }
+
+    /** Factory methods.
+     */
+    private static BranchHandle bh_list = null; // List of reusable handles
+
+
+    static final BranchHandle getBranchHandle( BranchInstruction i ) {
+        if (bh_list == null) {
+            return new BranchHandle(i);
+        }
+        BranchHandle bh = bh_list;
+        bh_list = (BranchHandle) bh.next;
+        bh.setInstruction(i);
+        return bh;
+    }
+
+
+    /** Handle adds itself to the list of resuable handles.
+     */
+    protected void addHandle() {
+        next = bh_list;
+        bh_list = this;
+    }
+
+
+    /* Override InstructionHandle methods: delegate to branch instruction.
+     * Through this overriding all access to the private i_position field should
+     * be prevented.
+     */
+    public int getPosition() {
+        return bi.position;
+    }
+
+
+    void setPosition( int pos ) {
+        i_position = bi.position = pos;
+    }
+
+
+    protected int updatePosition( int offset, int max_offset ) {
+        int x = bi.updatePosition(offset, max_offset);
+        i_position = bi.position;
+        return x;
+    }
+
+
+    /**
+     * Pass new target to instruction.
+     */
+    public void setTarget( InstructionHandle ih ) {
+        bi.setTarget(ih);
+    }
+
+
+    /**
+     * Update target of instruction.
+     */
+    public void updateTarget( InstructionHandle old_ih, InstructionHandle new_ih ) {
+        bi.updateTarget(old_ih, new_ih);
+    }
+
+
+    /**
+     * @return target of instruction.
+     */
+    public InstructionHandle getTarget() {
+        return bi.getTarget();
+    }
+
+
+    /** 
+     * Set new contents. Old instruction is disposed and may not be used anymore.
+     */
+    public void setInstruction( Instruction i ) {
+        super.setInstruction(i);
+        if (!(i instanceof BranchInstruction)) {
+            throw new ClassGenException("Assigning " + i
+                    + " to branch handle which is not a branch instruction");
+        }
+        bi = (BranchInstruction) i;
+    }
+}

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchInstruction.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchInstruction.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchInstruction.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/BranchInstruction.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 import java.io.DataOutputStream;
 import java.io.IOException;
 import org.apache.bcel.util.ByteSequence;
@@ -31,180 +30,201 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public abstract class BranchInstruction extends Instruction implements InstructionTargeter {
-  protected int               index;    // Branch target relative to this instruction
-  protected InstructionHandle target;   // Target object in instruction list
-  protected int               position; // Byte code offset
-
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  BranchInstruction() {}
-
-  /** Common super constructor
-   * @param opcode Instruction opcode
-   * @param target instruction to branch to
-   */
-  protected BranchInstruction(short opcode, InstructionHandle target) {
-    super(opcode, (short)3);
-    setTarget(target);
-  }
-
-  /**
-   * Dump instruction as byte code to stream out.
-   * @param out Output stream
-   */
-  public void dump(DataOutputStream out) throws IOException {
-    out.writeByte(opcode);
-
-    index = getTargetOffset();
-
-    if(Math.abs(index) >= 32767) // too large for short
-      throw new ClassGenException("Branch target offset too large for short");
-
-    out.writeShort(index); // May be negative, i.e., point backwards
-  }
-
-  /**
-   * @param _target branch target
-   * @return the offset to  `target' relative to this instruction
-   */
-  protected int getTargetOffset(InstructionHandle _target) {
-    if(_target == null)
-      throw new ClassGenException("Target of " + super.toString(true) + 
-				  " is invalid null handle");
-
-    int t = _target.getPosition();
-
-    if(t < 0)
-      throw new ClassGenException("Invalid branch target position offset for " +
-				  super.toString(true) + ":" + t + ":" + _target);
-
-    return t - position;
-  }
-
-  /**
-   * @return the offset to this instruction's target
-   */
-  protected int getTargetOffset() { return getTargetOffset(target); }
-
-  /**
-   * Called by InstructionList.setPositions when setting the position for every
-   * instruction. In the presence of variable length instructions `setPositions'
-   * performs multiple passes over the instruction list to calculate the
-   * correct (byte) positions and offsets by calling this function.
-   *
-   * @param offset additional offset caused by preceding (variable length) instructions
-   * @param max_offset the maximum offset that may be caused by these instructions
-   * @return additional offset caused by possible change of this instruction's length
-   */
-  protected int updatePosition(int offset, int max_offset) {
-    position += offset;
-    return 0;
-  }
-
-  /**
-   * Long output format:
-   *
-   * &lt;position in byte code&gt;
-   * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" 
-   * "("&lt;length of instruction&gt;")"
-   * "&lt;"&lt;target instruction&gt;"&gt;" "@"&lt;branch target offset&gt;
-   *
-   * @param verbose long/short format switch
-   * @return mnemonic for instruction
-   */
-  public String toString(boolean verbose) {
-    String s = super.toString(verbose);
-    String t = "null";
-
-    if(verbose) {
-      if(target != null) {
-	if(target.getInstruction() == this)
-	  t = "<points to itself>";
-	else if(target.getInstruction() == null)
-	  t = "<null instruction!!!?>";
-	else
-	  t = target.getInstruction().toString(false); // Avoid circles
-      }
-    } else {
-      if(target != null) {
-	index = getTargetOffset();
-	t = "" + (index + position);
-      }
-    }
-
-    return s + " -> " + t;
-  }
-
-  /**
-   * Read needed data (e.g. index) from file. Conversion to a InstructionHandle
-   * is done in InstructionList(byte[]).
-   *
-   * @param bytes input stream
-   * @param wide wide prefix?
-   * @see InstructionList
-   */
-  protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
-  {
-    length = 3;
-    index  = bytes.readShort();
-  }
-
-  /**
-   * @return target offset in byte code
-   */
-  public final int getIndex() { return index; }
-
-  /**
-   * @return target of branch instruction
-   */
-  public InstructionHandle getTarget() { return target; }
-
-  /**
-   * Set branch target
-   * @param target branch target
-   */
-  public void setTarget(InstructionHandle target) {
-    notifyTarget(this.target, target, this);
-    this.target = target;
-  }
-
-  /**
-   * Used by BranchInstruction, LocalVariableGen, CodeExceptionGen
-   */
-  static final void notifyTarget(InstructionHandle old_ih, InstructionHandle new_ih,
-				 InstructionTargeter t) {
-    if(old_ih != null)
-      old_ih.removeTargeter(t);
-    if(new_ih != null)
-      new_ih.addTargeter(t);
-  }
-
-  /**
-   * @param old_ih old target
-   * @param new_ih new target
-   */
-  public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
-    if(target == old_ih)
-      setTarget(new_ih);
-    else
-      throw new ClassGenException("Not targeting " + old_ih + ", but " + target);
-  }
-
-  /**
-   * @return true, if ih is target of this instruction
-   */
-  public boolean containsTarget(InstructionHandle ih) {
-    return (target == ih);
-  }
-
-  /**
-   * Inform target that it's not targeted anymore.
-   */
-  void dispose() {
-    setTarget(null);
-    index=-1;
-    position=-1;
-  }
+
+    protected int index; // Branch target relative to this instruction
+    protected InstructionHandle target; // Target object in instruction list
+    protected int position; // Byte code offset
+
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    BranchInstruction() {
+    }
+
+
+    /** Common super constructor
+     * @param opcode Instruction opcode
+     * @param target instruction to branch to
+     */
+    protected BranchInstruction(short opcode, InstructionHandle target) {
+        super(opcode, (short) 3);
+        setTarget(target);
+    }
+
+
+    /**
+     * Dump instruction as byte code to stream out.
+     * @param out Output stream
+     */
+    public void dump( DataOutputStream out ) throws IOException {
+        out.writeByte(opcode);
+        index = getTargetOffset();
+        if (Math.abs(index) >= 32767) {
+            throw new ClassGenException("Branch target offset too large for short");
+        }
+        out.writeShort(index); // May be negative, i.e., point backwards
+    }
+
+
+    /**
+     * @param _target branch target
+     * @return the offset to  `target' relative to this instruction
+     */
+    protected int getTargetOffset( InstructionHandle _target ) {
+        if (_target == null) {
+            throw new ClassGenException("Target of " + super.toString(true)
+                    + " is invalid null handle");
+        }
+        int t = _target.getPosition();
+        if (t < 0) {
+            throw new ClassGenException("Invalid branch target position offset for "
+                    + super.toString(true) + ":" + t + ":" + _target);
+        }
+        return t - position;
+    }
+
+
+    /**
+     * @return the offset to this instruction's target
+     */
+    protected int getTargetOffset() {
+        return getTargetOffset(target);
+    }
+
+
+    /**
+     * Called by InstructionList.setPositions when setting the position for every
+     * instruction. In the presence of variable length instructions `setPositions'
+     * performs multiple passes over the instruction list to calculate the
+     * correct (byte) positions and offsets by calling this function.
+     *
+     * @param offset additional offset caused by preceding (variable length) instructions
+     * @param max_offset the maximum offset that may be caused by these instructions
+     * @return additional offset caused by possible change of this instruction's length
+     */
+    protected int updatePosition( int offset, int max_offset ) {
+        position += offset;
+        return 0;
+    }
+
+
+    /**
+     * Long output format:
+     *
+     * &lt;position in byte code&gt;
+     * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" 
+     * "("&lt;length of instruction&gt;")"
+     * "&lt;"&lt;target instruction&gt;"&gt;" "@"&lt;branch target offset&gt;
+     *
+     * @param verbose long/short format switch
+     * @return mnemonic for instruction
+     */
+    public String toString( boolean verbose ) {
+        String s = super.toString(verbose);
+        String t = "null";
+        if (verbose) {
+            if (target != null) {
+                if (target.getInstruction() == this) {
+                    t = "<points to itself>";
+                } else if (target.getInstruction() == null) {
+                    t = "<null instruction!!!?>";
+                } else {
+                    t = target.getInstruction().toString(false); // Avoid circles
+                }
+            }
+        } else {
+            if (target != null) {
+                index = getTargetOffset();
+                t = "" + (index + position);
+            }
+        }
+        return s + " -> " + t;
+    }
+
+
+    /**
+     * Read needed data (e.g. index) from file. Conversion to a InstructionHandle
+     * is done in InstructionList(byte[]).
+     *
+     * @param bytes input stream
+     * @param wide wide prefix?
+     * @see InstructionList
+     */
+    protected void initFromFile( ByteSequence bytes, boolean wide ) throws IOException {
+        length = 3;
+        index = bytes.readShort();
+    }
+
+
+    /**
+     * @return target offset in byte code
+     */
+    public final int getIndex() {
+        return index;
+    }
+
+
+    /**
+     * @return target of branch instruction
+     */
+    public InstructionHandle getTarget() {
+        return target;
+    }
+
+
+    /**
+     * Set branch target
+     * @param target branch target
+     */
+    public void setTarget( InstructionHandle target ) {
+        notifyTarget(this.target, target, this);
+        this.target = target;
+    }
+
+
+    /**
+     * Used by BranchInstruction, LocalVariableGen, CodeExceptionGen
+     */
+    static final void notifyTarget( InstructionHandle old_ih, InstructionHandle new_ih,
+            InstructionTargeter t ) {
+        if (old_ih != null) {
+            old_ih.removeTargeter(t);
+        }
+        if (new_ih != null) {
+            new_ih.addTargeter(t);
+        }
+    }
+
+
+    /**
+     * @param old_ih old target
+     * @param new_ih new target
+     */
+    public void updateTarget( InstructionHandle old_ih, InstructionHandle new_ih ) {
+        if (target == old_ih) {
+            setTarget(new_ih);
+        } else {
+            throw new ClassGenException("Not targeting " + old_ih + ", but " + target);
+        }
+    }
+
+
+    /**
+     * @return true, if ih is target of this instruction
+     */
+    public boolean containsTarget( InstructionHandle ih ) {
+        return (target == ih);
+    }
+
+
+    /**
+     * Inform target that it's not targeted anymore.
+     */
+    void dispose() {
+        setTarget(null);
+        index = -1;
+        position = -1;
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CALOAD.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CALOAD.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CALOAD.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CALOAD.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * CALOAD - Load char from array
  * <PRE>Stack: ..., arrayref, index -&gt; ..., value</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class CALOAD extends ArrayInstruction implements StackProducer {
-  /** Load char from array
-   */
-  public CALOAD() {
-    super(org.apache.bcel.Constants.CALOAD);
-  }
+
+    /** Load char from array
+     */
+    public CALOAD() {
+        super(org.apache.bcel.Constants.CALOAD);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackProducer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitCALOAD(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackProducer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitCALOAD(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CASTORE.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CASTORE.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CASTORE.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CASTORE.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
-
 /** 
  * CASTORE -  Store into char array
  * <PRE>Stack: ..., arrayref, index, value -&gt; ...</PRE>
@@ -25,26 +24,27 @@
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
 public class CASTORE extends ArrayInstruction implements StackConsumer {
-  /** Store char into array
-   */
-  public CASTORE() {
-    super(org.apache.bcel.Constants.CASTORE);
-  }
+
+    /** Store char into array
+     */
+    public CASTORE() {
+        super(org.apache.bcel.Constants.CASTORE);
+    }
 
 
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitStackConsumer(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitArrayInstruction(this);
-    v.visitCASTORE(this);
-  }
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitStackConsumer(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitArrayInstruction(this);
+        v.visitCASTORE(this);
+    }
 }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CHECKCAST.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CHECKCAST.java?rev=386056&r1=386055&r2=386056&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CHECKCAST.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/CHECKCAST.java Wed Mar 15 03:31:56 2006
@@ -13,10 +13,11 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import org.apache.bcel.ExceptionConstants;
+
 /** 
  * CHECKCAST - Check whether object is of given type
  * <PRE>Stack: ..., objectref -&gt; ..., objectref</PRE>
@@ -24,57 +25,60 @@
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public class CHECKCAST extends CPInstruction
-  implements LoadClass, ExceptionThrower, StackProducer, StackConsumer {
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  CHECKCAST() {}
-
-  /** Check whether object is of given type
-   * @param index index to class in constant pool
-   */
-  public CHECKCAST(int index) {
-    super(org.apache.bcel.Constants.CHECKCAST, index);
-  }
-
-  /** @return exceptions this instruction may cause
-   */
-  public Class[] getExceptions() {
-    Class[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
-
-    System.arraycopy(ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0,
-		     cs, 0, ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
-    cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] =
-      ExceptionConstants.CLASS_CAST_EXCEPTION;
-    return cs;
-  }
-
-  public ObjectType getLoadClassType(ConstantPoolGen cpg) {
-    Type t = getType(cpg);
-
-    if(t instanceof ArrayType)
-      t = ((ArrayType) t).getBasicType();
-
-    return (t instanceof ObjectType)? (ObjectType) t : null;
-  }
-
-  /**
-   * Call corresponding visitor method(s). The order is:
-   * Call visitor methods of implemented interfaces first, then
-   * call methods according to the class hierarchy in descending order,
-   * i.e., the most specific visitXXX() call comes last.
-   *
-   * @param v Visitor object
-   */
-  public void accept(Visitor v) {
-    v.visitLoadClass(this);
-    v.visitExceptionThrower(this);
-    v.visitStackProducer(this);
-    v.visitStackConsumer(this);
-    v.visitTypedInstruction(this);
-    v.visitCPInstruction(this);
-    v.visitCHECKCAST(this);
-  }
+public class CHECKCAST extends CPInstruction implements LoadClass, ExceptionThrower, StackProducer,
+        StackConsumer {
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    CHECKCAST() {
+    }
+
+
+    /** Check whether object is of given type
+     * @param index index to class in constant pool
+     */
+    public CHECKCAST(int index) {
+        super(org.apache.bcel.Constants.CHECKCAST, index);
+    }
+
+
+    /** @return exceptions this instruction may cause
+     */
+    public Class[] getExceptions() {
+        Class[] cs = new Class[1 + ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length];
+        System.arraycopy(ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION, 0, cs, 0,
+                ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length);
+        cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] = ExceptionConstants.CLASS_CAST_EXCEPTION;
+        return cs;
+    }
+
+
+    public ObjectType getLoadClassType( ConstantPoolGen cpg ) {
+        Type t = getType(cpg);
+        if (t instanceof ArrayType) {
+            t = ((ArrayType) t).getBasicType();
+        }
+        return (t instanceof ObjectType) ? (ObjectType) t : null;
+    }
+
+
+    /**
+     * Call corresponding visitor method(s). The order is:
+     * Call visitor methods of implemented interfaces first, then
+     * call methods according to the class hierarchy in descending order,
+     * i.e., the most specific visitXXX() call comes last.
+     *
+     * @param v Visitor object
+     */
+    public void accept( Visitor v ) {
+        v.visitLoadClass(this);
+        v.visitExceptionThrower(this);
+        v.visitStackProducer(this);
+        v.visitStackConsumer(this);
+        v.visitTypedInstruction(this);
+        v.visitCPInstruction(this);
+        v.visitCHECKCAST(this);
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org