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
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 ByteCodeForm
byteCodeArray, byteCodesByName, WIDENED -
Constructor Summary
ConstructorsConstructorDescriptionClassSpecificReferenceForm(int opcode, String name, int[] rewrite) Constructs a new instance with the specified opcode, name, operandType and rewrite. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract Stringcontext(OperandManager operandManager) protected abstract intgetOffset(OperandManager operandManager) protected abstract intprotected voidsetNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset) Sets the nested entries.Methods inherited from class ReferenceForm
setByteCodeOperandsMethods inherited from class ByteCodeForm
calculateOperandPosition, firstOperandIndex, fixUpByteCodeTargets, get, getName, getOpcode, getRewrite, getRewriteCopy, hasMultipleByteCodes, hasNoOperand, nestedMustStartClassPool, operandLength, toString
-
Constructor Details
-
ClassSpecificReferenceForm
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 Details
-
context
-
getOffset
- Specified by:
getOffsetin classReferenceForm
-
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].
-