Class ClassSpecificReferenceForm
- java.lang.Object
-
- org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
-
- org.apache.commons.compress.harmony.unpack200.bytecode.forms.ReferenceForm
-
- org.apache.commons.compress.harmony.unpack200.bytecode.forms.ClassSpecificReferenceForm
-
- Direct Known Subclasses:
InitMethodReferenceForm,SuperFieldRefForm,SuperMethodRefForm,ThisFieldRefForm,ThisMethodRefForm
public abstract class ClassSpecificReferenceForm extends ReferenceForm
Abstract superclass of all classes that have class-specific references to constant pool information. These classes have a context (a string representing a pack200 class) i.e., they send getClassSpecificPoolEntry instead of getConstantPoolEntry.
-
-
Field Summary
-
Fields inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
byteCodeArray, byteCodesByName, WIDENED
-
-
Constructor Summary
Constructors Constructor Description ClassSpecificReferenceForm(int opcode, java.lang.String name, int[] rewrite)Constructs a new instance with the specified opcode, name, operandType and rewrite.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.lang.Stringcontext(OperandManager operandManager)protected abstract intgetOffset(OperandManager operandManager)protected abstract intgetPoolID()protected voidsetNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset)Sets the nested entries.-
Methods inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.forms.ReferenceForm
setByteCodeOperands
-
Methods inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
calculateOperandPosition, firstOperandIndex, fixUpByteCodeTargets, get, getName, getOpcode, getRewrite, getRewriteCopy, hasMultipleByteCodes, hasNoOperand, nestedMustStartClassPool, operandLength, toString
-
-
-
-
Constructor Detail
-
ClassSpecificReferenceForm
public ClassSpecificReferenceForm(int opcode, java.lang.String name, int[] rewrite)
Constructs a new instance with the specified opcode, name, operandType and rewrite.- Parameters:
opcode- index corresponding to the opcode's value.name- String printable name of the opcode.rewrite- Operand positions (which will later be rewritten in ByteCodes) are indicated by -1.
-
-
Method Detail
-
context
protected abstract java.lang.String context(OperandManager operandManager)
-
getOffset
protected abstract int getOffset(OperandManager operandManager)
- Specified by:
getOffsetin classReferenceForm
-
getPoolID
protected abstract int getPoolID()
- Specified by:
getPoolIDin classReferenceForm
-
setNestedEntries
protected void setNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset) throws Pack200Exception
Description copied from class:ReferenceFormSets the nested entries.- Overrides:
setNestedEntriesin classReferenceForm- Parameters:
byteCode- byte codes.operandManager- Operand manager.offset- offset.- Throws:
Pack200Exception- if support for a type is not supported or the offset not in the range [0,Integer.MAX_VALUE].
-
-