aboutsummaryrefslogtreecommitdiff
path: root/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java')
-rw-r--r--src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java169
1 files changed, 0 insertions, 169 deletions
diff --git a/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java b/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java
deleted file mode 100644
index 5f9650b..0000000
--- a/src/com/sun/org/apache/bcel/internal/generic/CPInstruction.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
- */
-package com.sun.org.apache.bcel.internal.generic;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache BCEL" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache BCEL", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-import java.io.*;
-import com.sun.org.apache.bcel.internal.util.ByteSequence;
-import com.sun.org.apache.bcel.internal.Constants;
-import com.sun.org.apache.bcel.internal.classfile.*;
-
-/**
- * Abstract super class for instructions that use an index into the
- * constant pool such as LDC, INVOKEVIRTUAL, etc.
- *
- * @see ConstantPoolGen
- * @see LDC
- * @see INVOKEVIRTUAL
- *
- * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
- */
-public abstract class CPInstruction extends Instruction
- implements TypedInstruction, IndexedInstruction
-{
- protected int index; // index to constant pool
-
- /**
- * Empty constructor needed for the Class.newInstance() statement in
- * Instruction.readInstruction(). Not to be used otherwise.
- */
- CPInstruction() {}
-
- /**
- * @param index to constant pool
- */
- protected CPInstruction(short opcode, int index) {
- super(opcode, (short)3);
- setIndex(index);
- }
-
- /**
- * 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);
- }
-
- /**
- * 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 com.sun.org.apache.bcel.internal.Constants.OPCODE_NAMES[opcode] + " " + str;
- }
-
- /**
- * Read needed data (i.e., index) from file.
- * @param bytes input stream
- * @param wide wide prefix?
- */
- protected void initFromFile(ByteSequence bytes, boolean wide)
- throws IOException
- {
- setIndex(bytes.readUnsignedShort());
- length = 3;
- }
-
- /**
- * @return index in constant pool referred by this instruction.
- */
- public final int getIndex() { return index; }
-
- /**
- * Set the index to constant pool.
- * @param index in constant pool.
- */
- public void setIndex(int index) {
- if(index < 0)
- throw new ClassGenException("Negative index value: " + index);
-
- this.index = index;
- }
-
- /** @return type related with this instruction.
- */
- public Type getType(ConstantPoolGen cpg) {
- ConstantPool cp = cpg.getConstantPool();
- String name = cp.getConstantString(index, com.sun.org.apache.bcel.internal.Constants.CONSTANT_Class);
-
- if(!name.startsWith("["))
- name = "L" + name + ";";
-
- return Type.getType(name);
- }
-}