]> source.dussan.org Git - aspectj.git/commitdiff
chewed by formatter
authoraclement <aclement>
Thu, 28 Aug 2008 00:05:49 +0000 (00:05 +0000)
committeraclement <aclement>
Thu, 28 Aug 2008 00:05:49 +0000 (00:05 +0000)
bcel-builder/src/org/aspectj/apache/bcel/generic/InstructionCP.java

index 175f899144a665213a60b42a3a50ad899fd315f0..8c007142dd16d9415c57248ef285dde24bd4e4dc 100644 (file)
@@ -57,140 +57,155 @@ package org.aspectj.apache.bcel.generic;
 import java.io.DataOutputStream;
 import java.io.IOException;
 
+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.Constants;
 
-/** 
- * Slass for instructions that use an index into the 
- * constant pool such as LDC, INVOKEVIRTUAL, etc.
- *
+import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen;
+import com.sun.org.apache.bcel.internal.generic.INVOKEVIRTUAL;
+import com.sun.org.apache.bcel.internal.generic.LDC;
+
+/**
+ * Slass for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.
+ * 
  * @see ConstantPoolGen
  * @see LDC
  * @see INVOKEVIRTUAL
- *
- * @version $Id: InstructionCP.java,v 1.2 2008/05/28 23:52:57 aclement Exp $
- * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
+ * 
+ * @version $Id: InstructionCP.java,v 1.3 2008/08/28 00:05:49 aclement Exp $
+ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  */
 public class InstructionCP extends Instruction {
-  protected int index; // index to constant pool
-
-  public InstructionCP(short opcode, int index) {
-       this.opcode = opcode;
-       this.index  = index;
-  }
-
-  public void dump(DataOutputStream out) throws IOException {
-         if (opcode==LDC_W && index<256) {
-               out.writeByte(LDC);
-               out.writeByte(index);
-         } else {
-           out.writeByte(opcode);    
-           if(Constants.iLen[opcode] == 2) {
-               if (index>255) {
-                       throw new IllegalStateException();
-               }
-             out.writeByte(index);
-           } else
-          out.writeShort(index);
-         }
-  }
-
-  public int getLength()   { 
-         if (opcode==LDC_W && index<256) return 2; else return super.getLength();
-  }
-
-  /**
-   * Long output format:
-   *
-   * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" 
-   * "("&lt;length of instruction&gt;")" "&lt;"&lt; constant pool index&gt;"&gt;"
-   *
-   * @param verbose long/short format switch
-   * @return mnemonic for instruction
-   */
-  public String toString(boolean verbose) {
-    return super.toString(verbose) + " " + index;
-  }
-
-  /**
-   * @return mnemonic for instruction with symbolic references resolved
-   */
-  public String toString(ConstantPool cp) {
-    Constant c   = cp.getConstant(index);
-    String   str = cp.constantToString(c);
-
-    if(c instanceof ConstantClass)
-      str = str.replace('.', '/');
-
-    return org.aspectj.apache.bcel.Constants.OPCODE_NAMES[opcode] + " " + str;
-  }
-
-  /**
-   * @return index in constant pool referred by this instruction.
-   */
-  public final int getIndex() { return index; }
-
-  public void setIndex(int index) {
-         this.index = index;
-         if (this.index>255 && opcode==LDC) {
-                 // promote it
-                 opcode = LDC_W;
-         }
-  }
-
-  public Type getType(ConstantPool cpg) {
-    switch (cpg.getConstant(index).getTag()) {
-      case CONSTANT_String:  return Type.STRING;
-      case CONSTANT_Float:   return Type.FLOAT;
-      case CONSTANT_Integer: return Type.INT;
-      case CONSTANT_Long:    return Type.LONG;
-      case CONSTANT_Double:  return Type.DOUBLE;
-      case CONSTANT_Class:
-       String name = cpg.getConstantString_CONSTANTClass(index);
-//     ConstantPool cp   = cpg.getConstantPool();
-//        String       name = cp.getConstantString(index, CONSTANT_Class);
-        if(!name.startsWith("[")) {
-               StringBuffer sb = new StringBuffer();
-               sb.append("L").append(name).append(";");
-            return Type.getType(sb.toString());
-        } else {
-               return Type.getType(name);
-        }
-      default: // Never reached
-        throw new RuntimeException("Unknown or invalid constant type at " + index);
-    }
-  }
-  
-  public Object getValue(ConstantPool cpg) {
-           org.aspectj.apache.bcel.classfile.Constant c = cpg.getConstant(index);
-
-           switch(c.getTag()) {
-             case org.aspectj.apache.bcel.Constants.CONSTANT_String:
-               int i = ((org.aspectj.apache.bcel.classfile.ConstantString)c).getStringIndex();
-               c = cpg.getConstant(i);
-               return ((org.aspectj.apache.bcel.classfile.ConstantUtf8)c).getBytes();
-
-           case org.aspectj.apache.bcel.Constants.CONSTANT_Float:
-               return new Float(((org.aspectj.apache.bcel.classfile.ConstantFloat)c).getBytes());
-
-           case org.aspectj.apache.bcel.Constants.CONSTANT_Integer:
-               return new Integer(((org.aspectj.apache.bcel.classfile.ConstantInteger)c).getBytes());
-               
-               // from ldc2_w:
-           case org.aspectj.apache.bcel.Constants.CONSTANT_Long:
-               return new Long(((org.aspectj.apache.bcel.classfile.ConstantLong)c).getBytes());
-           
-               case org.aspectj.apache.bcel.Constants.CONSTANT_Double:
-               return new Double(((org.aspectj.apache.bcel.classfile.ConstantDouble)c).getBytes());
-           default: // Never reached
-             throw new RuntimeException("Unknown or invalid constant type at " + index);
-             }
-         }
-
-
-         public Class[] getExceptions() {
-           return org.aspectj.apache.bcel.ExceptionConstants.EXCS_STRING_RESOLUTION;
-         }
+       protected int index; // index to constant pool
+
+       public InstructionCP(short opcode, int index) {
+               super(opcode);
+               this.index = index;
+       }
+
+       public void dump(DataOutputStream out) throws IOException {
+               if (opcode == LDC_W && index < 256) {
+                       out.writeByte(LDC);
+                       out.writeByte(index);
+               } else {
+                       out.writeByte(opcode);
+                       if (Constants.iLen[opcode] == 2) {
+                               if (index > 255) {
+                                       throw new IllegalStateException();
+                               }
+                               out.writeByte(index);
+                       } else {
+                               out.writeShort(index);
+                       }
+               }
+       }
+
+       public int getLength() {
+               if (opcode == LDC_W && index < 256) {
+                       return 2;
+               } else {
+                       return super.getLength();
+               }
+       }
+
+       /**
+        * Long output format:
+        * 
+        * &lt;name of opcode&gt; "["&lt;opcode number&gt;"]" "("&lt;length of instruction&gt;")" "&lt;"&lt; constant pool
+        * index&gt;"&gt;"
+        * 
+        * @param verbose long/short format switch
+        * @return mnemonic for instruction
+        */
+       public String toString(boolean verbose) {
+               return super.toString(verbose) + " " + index;
+       }
+
+       /**
+        * @return mnemonic for instruction with symbolic references resolved
+        */
+       public String toString(ConstantPool cp) {
+               Constant c = cp.getConstant(index);
+               String str = cp.constantToString(c);
+
+               if (c instanceof ConstantClass) {
+                       str = str.replace('.', '/');
+               }
+
+               return org.aspectj.apache.bcel.Constants.OPCODE_NAMES[opcode] + " " + str;
+       }
+
+       /**
+        * @return index in constant pool referred by this instruction.
+        */
+       public final int getIndex() {
+               return index;
+       }
+
+       public void setIndex(int index) {
+               this.index = index;
+               if (this.index > 255 && opcode == LDC) {
+                       // promote it
+                       opcode = LDC_W;
+               }
+       }
+
+       public Type getType(ConstantPool cpg) {
+               switch (cpg.getConstant(index).getTag()) {
+               case CONSTANT_String:
+                       return Type.STRING;
+               case CONSTANT_Float:
+                       return Type.FLOAT;
+               case CONSTANT_Integer:
+                       return Type.INT;
+               case CONSTANT_Long:
+                       return Type.LONG;
+               case CONSTANT_Double:
+                       return Type.DOUBLE;
+               case CONSTANT_Class:
+                       String name = cpg.getConstantString_CONSTANTClass(index);
+                       // ConstantPool cp = cpg.getConstantPool();
+                       // String name = cp.getConstantString(index, CONSTANT_Class);
+                       if (!name.startsWith("[")) {
+                               StringBuffer sb = new StringBuffer();
+                               sb.append("L").append(name).append(";");
+                               return Type.getType(sb.toString());
+                       } else {
+                               return Type.getType(name);
+                       }
+               default: // Never reached
+                       throw new RuntimeException("Unknown or invalid constant type at " + index);
+               }
+       }
+
+       public Object getValue(ConstantPool cpg) {
+               org.aspectj.apache.bcel.classfile.Constant c = cpg.getConstant(index);
+
+               switch (c.getTag()) {
+               case org.aspectj.apache.bcel.Constants.CONSTANT_String:
+                       int i = ((org.aspectj.apache.bcel.classfile.ConstantString) c).getStringIndex();
+                       c = cpg.getConstant(i);
+                       return ((org.aspectj.apache.bcel.classfile.ConstantUtf8) c).getBytes();
+
+               case org.aspectj.apache.bcel.Constants.CONSTANT_Float:
+                       return new Float(((org.aspectj.apache.bcel.classfile.ConstantFloat) c).getBytes());
+
+               case org.aspectj.apache.bcel.Constants.CONSTANT_Integer:
+                       return new Integer(((org.aspectj.apache.bcel.classfile.ConstantInteger) c).getBytes());
+
+                       // from ldc2_w:
+               case org.aspectj.apache.bcel.Constants.CONSTANT_Long:
+                       return new Long(((org.aspectj.apache.bcel.classfile.ConstantLong) c).getBytes());
+
+               case org.aspectj.apache.bcel.Constants.CONSTANT_Double:
+                       return new Double(((org.aspectj.apache.bcel.classfile.ConstantDouble) c).getBytes());
+               default: // Never reached
+                       throw new RuntimeException("Unknown or invalid constant type at " + index);
+               }
+       }
+
+       public Class[] getExceptions() {
+               return org.aspectj.apache.bcel.ExceptionConstants.EXCS_STRING_RESOLUTION;
+       }
 }