public static class Implementation.Context.Disabled extends Implementation.Context.ExtractableView.AbstractBase
Modifier and Type | Class and Description |
---|---|
static class |
Implementation.Context.Disabled.Factory
A factory for creating a
Implementation.Context.Disabled . |
Implementation.Context.ExtractableView.AbstractBase
Implementation.Context.Default, Implementation.Context.Disabled, Implementation.Context.ExtractableView, Implementation.Context.FrameGeneration
MethodAccessorFactory.AccessType, MethodAccessorFactory.Illegal
classFileVersion, frameGeneration, instrumentedType
Modifier | Constructor and Description |
---|---|
protected |
Disabled(TypeDescription instrumentedType,
ClassFileVersion classFileVersion,
Implementation.Context.FrameGeneration frameGeneration)
Creates a new disabled implementation context.
|
Modifier and Type | Method and Description |
---|---|
FieldDescription.InDefinedShape |
cache(StackManipulation fieldValue,
TypeDescription fieldType)
Caches a single value by storing it in form of a
private , final and static field. |
void |
drain(TypeInitializer.Drain drain,
ClassVisitor classVisitor,
AnnotationValueFilter.Factory annotationValueFilterFactory)
Writes any information that was registered with an
Implementation.Context
to the provided class visitor. |
List<DynamicType> |
getAuxiliaryTypes()
Returns any
AuxiliaryType that was registered
with this Implementation.Context . |
boolean |
isEnabled()
Returns
true if this implementation context permits the registration of any implicit type initializers. |
TypeDescription |
register(AuxiliaryType auxiliaryType)
Registers an auxiliary type as required for the current implementation.
|
MethodDescription.InDefinedShape |
registerAccessorFor(Implementation.SpecialMethodInvocation specialMethodInvocation,
MethodAccessorFactory.AccessType accessType)
Registers an accessor method for a
Implementation.SpecialMethodInvocation which cannot itself be
triggered invoked directly from outside a type. |
MethodDescription.InDefinedShape |
registerGetterFor(FieldDescription fieldDescription,
MethodAccessorFactory.AccessType accessType)
Registers a getter for the given
FieldDescription which might
itself not be accessible from outside the class. |
MethodDescription.InDefinedShape |
registerSetterFor(FieldDescription fieldDescription,
MethodAccessorFactory.AccessType accessType)
Registers a setter for the given
FieldDescription which might
itself not be accessible from outside the class. |
getClassFileVersion, getFrameGeneration, getInstrumentedType
protected Disabled(TypeDescription instrumentedType, ClassFileVersion classFileVersion, Implementation.Context.FrameGeneration frameGeneration)
instrumentedType
- The instrumented type.classFileVersion
- The class file version to create the class in.frameGeneration
- Determines the frame generation to be applied.public boolean isEnabled()
true
if this implementation context permits the registration of any implicit type initializers.true
if this implementation context permits the registration of any implicit type initializers.public List<DynamicType> getAuxiliaryTypes()
AuxiliaryType
that was registered
with this Implementation.Context
.public void drain(TypeInitializer.Drain drain, ClassVisitor classVisitor, AnnotationValueFilter.Factory annotationValueFilterFactory)
Implementation.Context
to the provided class visitor. This contains any fields for value caching, any accessor method and it
writes the type initializer. The type initializer must therefore never be written manually.drain
- The drain to write the type initializer to.classVisitor
- The class visitor to which the extractable view is to be written.annotationValueFilterFactory
- The annotation value filter factory to apply when writing annotation.public TypeDescription register(AuxiliaryType auxiliaryType)
auxiliaryType
- The auxiliary type that is required for the current implementation.public MethodDescription.InDefinedShape registerAccessorFor(Implementation.SpecialMethodInvocation specialMethodInvocation, MethodAccessorFactory.AccessType accessType)
Implementation.SpecialMethodInvocation
which cannot itself be
triggered invoked directly from outside a type. The method is registered on the instrumented type
with package-private visibility, similarly to a Java compiler's accessor methods.specialMethodInvocation
- The special method invocation.accessType
- The required access type.public MethodDescription.InDefinedShape registerGetterFor(FieldDescription fieldDescription, MethodAccessorFactory.AccessType accessType)
FieldDescription
which might
itself not be accessible from outside the class. The returned getter method defines the field type as
its return type, does not take any arguments and is of package-private visibility, similarly to the Java
compiler's accessor methods. If the field is static
, this accessor method is also static
.fieldDescription
- The field which is to be accessed.accessType
- The required access type.public MethodDescription.InDefinedShape registerSetterFor(FieldDescription fieldDescription, MethodAccessorFactory.AccessType accessType)
FieldDescription
which might
itself not be accessible from outside the class. The returned setter method defines the field type as
its only argument type, returns void
and is of package-private visibility, similarly to the Java
compiler's accessor methods. If the field is static
, this accessor method is also static
.fieldDescription
- The field which is to be accessed.accessType
- The required access type.public FieldDescription.InDefinedShape cache(StackManipulation fieldValue, TypeDescription fieldType)
private
, final
and static
field.
By caching values, expensive instance creations can be avoided and object identity can be preserved.
The field is initiated in a generated class's static initializer.fieldValue
- A stack manipulation for creating the value that is to be cached in a static
field.
After executing the stack manipulation, exactly one value must be put onto the operand
stack which is assignable to the given fieldType
.fieldType
- The type of the field for storing the cached value. This field's type determines the value
that is put onto the operand stack by this method's returned stack manipulation.Copyright © 2014–2025. All rights reserved.