/[Apache-SVN]/jakarta/bcel/trunk/src/java/org/apache/bcel/generic/MULTIANEWARRAY.java
ViewVC logotype

Diff of /jakarta/bcel/trunk/src/java/org/apache/bcel/generic/MULTIANEWARRAY.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- jakarta/bcel/trunk/src/java/org/apache/bcel/generic/MULTIANEWARRAY.java	2006/03/15 11:30:53	386055
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/generic/MULTIANEWARRAY.java	2006/03/15 11:31:56	386056
@@ -13,7 +13,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License. 
  *
- */ 
+ */
 package org.apache.bcel.generic;
 
 import java.io.DataOutputStream;
@@ -29,108 +29,118 @@ import org.apache.bcel.util.ByteSequence
  * @version $Id$
  * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
  */
-public class MULTIANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction, ExceptionThrower {
-  private short dimensions;
+public class MULTIANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction,
+        ExceptionThrower {
+
+    private short dimensions;
+
+
+    /**
+     * Empty constructor needed for the Class.newInstance() statement in
+     * Instruction.readInstruction(). Not to be used otherwise.
+     */
+    MULTIANEWARRAY() {
+    }
+
+
+    public MULTIANEWARRAY(int index, short dimensions) {
+        super(org.apache.bcel.Constants.MULTIANEWARRAY, index);
+        if (dimensions < 1) {
+            throw new ClassGenException("Invalid dimensions value: " + dimensions);
+        }
+        this.dimensions = dimensions;
+        length = 4;
+    }
+
+
+    /**
+     * Dump instruction as byte code to stream out.
+     * @param out Output stream
+     */
+    public void dump( DataOutputStream out ) throws IOException {
+        out.writeByte(opcode);
+        out.writeShort(index);
+        out.writeByte(dimensions);
+    }
+
+
+    /**
+     * Read needed data (i.e., no. dimension) from file.
+     */
+    protected void initFromFile( ByteSequence bytes, boolean wide ) throws IOException {
+        super.initFromFile(bytes, wide);
+        dimensions = bytes.readByte();
+        length = 4;
+    }
+
+
+    /**
+     * @return number of dimensions to be created
+     */
+    public final short getDimensions() {
+        return dimensions;
+    }
 
-  /**
-   * Empty constructor needed for the Class.newInstance() statement in
-   * Instruction.readInstruction(). Not to be used otherwise.
-   */
-  MULTIANEWARRAY() {}
-
-  public MULTIANEWARRAY(int index, short dimensions) {
-    super(org.apache.bcel.Constants.MULTIANEWARRAY, index);
-
-    if(dimensions < 1)
-      throw new ClassGenException("Invalid dimensions value: " + dimensions);
-
-    this.dimensions = dimensions;
-    length = 4;
-  }
-
-  /**
-   * Dump instruction as byte code to stream out.
-   * @param out Output stream
-   */
-  public void dump(DataOutputStream out) throws IOException {
-    out.writeByte(opcode);
-    out.writeShort(index);
-    out.writeByte(dimensions);
-  }
-
-  /**
-   * Read needed data (i.e., no. dimension) from file.
-   */
-  protected void initFromFile(ByteSequence bytes, boolean wide)
-       throws IOException
-  {
-    super.initFromFile(bytes, wide);
-    dimensions = bytes.readByte();
-    length     = 4;
-  }
-
-  /**
-   * @return number of dimensions to be created
-   */
-  public final short getDimensions() { return dimensions; }
-
-  /**
-   * @return mnemonic for instruction
-   */
-  public String toString(boolean verbose) {
-    return super.toString(verbose) + " " + index + " " + dimensions;
-  }
-
-  /**
-   * @return mnemonic for instruction with symbolic references resolved
-   */
-  public String toString(ConstantPool cp) {
-    return super.toString(cp) + " " + dimensions;
-  }
-
-  /**
-   * Also works for instructions whose stack effect depends on the
-   * constant pool entry they reference.
-   * @return Number of words consumed from stack by this instruction
-   */
-  public int consumeStack(ConstantPoolGen cpg) { return dimensions; }
-
-  public Class[] getExceptions() {
-    Class[] cs = new Class[2 + 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+1] = ExceptionConstants.NEGATIVE_ARRAY_SIZE_EXCEPTION;
-    cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length]   = ExceptionConstants.ILLEGAL_ACCESS_ERROR;
-
-    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.visitAllocationInstruction(this);
-    v.visitExceptionThrower(this);
-    v.visitTypedInstruction(this);
-    v.visitCPInstruction(this);
-    v.visitMULTIANEWARRAY(this);
-  }
+
+    /**
+     * @return mnemonic for instruction
+     */
+    public String toString( boolean verbose ) {
+        return super.toString(verbose) + " " + index + " " + dimensions;
+    }
+
+
+    /**
+     * @return mnemonic for instruction with symbolic references resolved
+     */
+    public String toString( ConstantPool cp ) {
+        return super.toString(cp) + " " + dimensions;
+    }
+
+
+    /**
+     * Also works for instructions whose stack effect depends on the
+     * constant pool entry they reference.
+     * @return Number of words consumed from stack by this instruction
+     */
+    public int consumeStack( ConstantPoolGen cpg ) {
+        return dimensions;
+    }
+
+
+    public Class[] getExceptions() {
+        Class[] cs = new Class[2 + 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 + 1] = ExceptionConstants.NEGATIVE_ARRAY_SIZE_EXCEPTION;
+        cs[ExceptionConstants.EXCS_CLASS_AND_INTERFACE_RESOLUTION.length] = ExceptionConstants.ILLEGAL_ACCESS_ERROR;
+        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.visitAllocationInstruction(this);
+        v.visitExceptionThrower(this);
+        v.visitTypedInstruction(this);
+        v.visitCPInstruction(this);
+        v.visitMULTIANEWARRAY(this);
+    }
 }

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26