Class ArrayFactory.ArrayCreator.ForReferenceType
- java.lang.Object
-
- net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator.ForReferenceType
-
- All Implemented Interfaces:
ArrayFactory.ArrayCreator,StackManipulation
- Enclosing interface:
- ArrayFactory.ArrayCreator
@Enhance public static class ArrayFactory.ArrayCreator.ForReferenceType extends java.lang.Object implements ArrayFactory.ArrayCreator
An array creator implementation for reference types.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator
ArrayFactory.ArrayCreator.ForPrimitiveType, ArrayFactory.ArrayCreator.ForReferenceType
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.StackManipulation
StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Size, StackManipulation.Trivial
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringinternalTypeNameThe internal name of this array's non-primitive component type.-
Fields inherited from interface net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator
ARRAY_CREATION_SIZE_CHANGE
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedForReferenceType(TypeDescription referenceType)Creates a new array creator for a reference type.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StackManipulation.Sizeapply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)Applies the stack manipulation that is described by this instance.intgetStorageOpcode()The opcode instruction for storing a value of the component type inside an array.booleanisValid()Determines if this stack manipulation is valid.
-
-
-
Constructor Detail
-
ForReferenceType
protected ForReferenceType(TypeDescription referenceType)
Creates a new array creator for a reference type.- Parameters:
referenceType- The internal name of this array's non-primitive component type.
-
-
Method Detail
-
isValid
public boolean isValid()
Determines if this stack manipulation is valid.- Specified by:
isValidin interfaceStackManipulation- Returns:
- If
false, this manipulation cannot be applied and should throw an exception.
-
apply
public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)
Applies the stack manipulation that is described by this instance.- Specified by:
applyin interfaceStackManipulation- Parameters:
methodVisitor- The method visitor used to write the method implementation to.implementationContext- The context of the current implementation.- Returns:
- The changes to the size of the operand stack that are implied by this stack manipulation.
-
getStorageOpcode
public int getStorageOpcode()
The opcode instruction for storing a value of the component type inside an array.- Specified by:
getStorageOpcodein interfaceArrayFactory.ArrayCreator- Returns:
- The correct storage opcode for the represented type.
-
-