Class ReferenceForm
- java.lang.Object
-
- org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
-
- org.apache.commons.compress.harmony.unpack200.bytecode.forms.ReferenceForm
-
- Direct Known Subclasses:
ClassRefForm
,ClassSpecificReferenceForm
,DoubleForm
,FieldRefForm
,IMethodRefForm
,LongForm
,MethodRefForm
,SingleByteReferenceForm
public abstract class ReferenceForm extends ByteCodeForm
Abstract class of all ByteCodeForms which add a nested entry from the globalConstantPool.
-
-
Field Summary
-
Fields inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
byteCodeArray, byteCodesByName, WIDENED
-
-
Constructor Summary
Constructors Constructor Description ReferenceForm(int opcode, java.lang.String name, int[] rewrite)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract int
getOffset(OperandManager operandManager)
protected abstract int
getPoolID()
void
setByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength)
When passed a byteCode, an OperandTable and a SegmentConstantPool, this method will set the rewrite of the byteCode appropriately.protected void
setNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset)
-
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
-
ReferenceForm
public ReferenceForm(int opcode, java.lang.String name, int[] rewrite)
-
-
Method Detail
-
getPoolID
protected abstract int getPoolID()
-
getOffset
protected abstract int getOffset(OperandManager operandManager)
-
setNestedEntries
protected void setNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset) throws Pack200Exception
- Throws:
Pack200Exception
-
setByteCodeOperands
public void setByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength)
Description copied from class:ByteCodeForm
When passed a byteCode, an OperandTable and a SegmentConstantPool, this method will set the rewrite of the byteCode appropriately.- Specified by:
setByteCodeOperands
in classByteCodeForm
- Parameters:
byteCode
- ByteCode to be updated (!)operandManager
- OperandTable from which to draw infocodeLength
- Length of bytes (excluding this bytecode) from the beginning of the method. Used in calculating padding for some variable-length bytecodes (such as lookupswitch, tableswitch).
-
-