Package net.bytebuddy.dynamic
Class DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase.Adapter<X>
java.lang.Object
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBase<V>
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBase<V>
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase<V>
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBase<W>
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase<X>
net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase.Adapter<X>
- Type Parameters:
X
- A loaded type that the built type is guaranteed to be a subclass of.
- All Implemented Interfaces:
DynamicType.Builder.MethodDefinition.ExceptionDefinition<X>
,DynamicType.Builder.MethodDefinition.ImplementationDefinition<X>
,DynamicType.Builder.MethodDefinition.ParameterDefinition<X>
,DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable<X>
,DynamicType.Builder.MethodDefinition.TypeVariableDefinition<X>
- Direct Known Subclasses:
DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.ParameterAnnotationAdapter
- Enclosing class:
- DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase<W>
protected abstract static class DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase.Adapter<X>
extends DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase<X>
An adapter implementation for defining an annotation on a parameter.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase
DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase.Adapter<X>
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition
DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase<V>
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition
DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBase<V>, DynamicType.Builder.MethodDefinition.ImplementationDefinition.Optional<V>
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition
DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBase<V>, DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable<V>, DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial<V>, DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple<V>
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable
DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase<W>
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition
DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBase<V>, DynamicType.Builder.MethodDefinition.TypeVariableDefinition.Annotatable<V>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondefaultValue
(AnnotationValue<?, ?> annotationValue) Defines the previously defined or matched method to return the supplied value as an annotation default value.defaultValue
(V value, Class<? extends V> type) Defines the previously defined or matched method to return the supplied value as an annotation default value.intercept
(Implementation implementation) Implements the previously defined or matched method by the supplied implementation.protected abstract DynamicType.Builder.MethodDefinition.ParameterDefinition<X>
Materializes this instance as a parameter definition with the currently defined properties.throwing
(Collection<? extends TypeDefinition> types) Defines a method variable to be declared by the currently defined method.typeVariable
(String symbol, Collection<? extends TypeDefinition> bounds) Defines a method variable to be declared by the currently defined method.Defines the previously defined or matched method not to declare a method body.withParameter
(TypeDefinition type, String name, int modifiers) Defines the specified parameter for the currently defined method as the last parameter of the currently defined method.Methods inherited from class net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable.AbstractBase
annotateParameter, annotateParameter, annotateParameter
Methods inherited from class net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBase
withParameter, withParameter, withParameter, withParameter, withParameter
Methods inherited from class net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase
throwing, throwing, throwing
Methods inherited from class net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBase
typeVariable, typeVariable, typeVariable, typeVariable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition
throwing, throwing, throwing
Methods inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition
withParameter, withParameter, withParameter, withParameter, withParameter
Methods inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable
annotateParameter
Methods inherited from interface net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition
typeVariable, typeVariable, typeVariable, typeVariable
-
Constructor Details
-
Adapter
protected Adapter()
-
-
Method Details
-
withParameter
public DynamicType.Builder.MethodDefinition.ParameterDefinition.Annotatable<X> withParameter(TypeDefinition type, String name, int modifiers) Defines the specified parameter for the currently defined method as the last parameter of the currently defined method.- Parameters:
type
- The parameter's type. Can also beTargetType
if the parameter type should be equal to the currently instrumented type.name
- The parameter's name.modifiers
- The parameter's modifiers.- Returns:
- A new builder that is equal to the current builder but where the currently defined method appends the specified parameter.
-
throwing
public DynamicType.Builder.MethodDefinition.ExceptionDefinition<X> throwing(Collection<? extends TypeDefinition> types) Defines a method variable to be declared by the currently defined method.- Parameters:
types
- The type of the exception being declared by the currently defined method.- Returns:
- A new builder that is equal to the current builder but where the currently defined method declares the specified exception type.
-
typeVariable
public DynamicType.Builder.MethodDefinition.TypeVariableDefinition.Annotatable<X> typeVariable(String symbol, Collection<? extends TypeDefinition> bounds) Defines a method variable to be declared by the currently defined method.- Parameters:
symbol
- The symbol of the type variable.bounds
- The bounds of the type variables. Can also beTargetType
for any type if a bound type should be equal to the currently instrumented type.- Returns:
- A new builder that is equal to the current builder but where the currently defined method declares the specified type variable.
-
intercept
public DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition<X> intercept(Implementation implementation) Implements the previously defined or matched method by the supplied implementation. A method interception is typically implemented in one of the following ways:- If a method is declared by the instrumented type and the type builder creates a subclass or redefinition, any preexisting method is replaced by the given implementation. Any previously defined implementation is lost.
- If a method is declared by the instrumented type and the type builder creates a rebased version of the instrumented type, the original method is preserved within a private, synthetic method within the instrumented type. The original method therefore remains invokeable and is treated as the direct super method of the new method. When rebasing a type, it therefore becomes possible to invoke a non-virtual method's super method when a preexisting method body is replaced.
- If a virtual method is inherited from a super type, it is overridden. The overridden method is available for super method invocation.
- Parameters:
implementation
- The implementation for implementing the previously defined or matched method.- Returns:
- A new builder where the previously defined or matched method is implemented by the supplied implementation.
-
withoutCode
Defines the previously defined or matched method not to declare a method body. This implies the method to beabstract
unless it was already declared to benative
.- Returns:
- A new builder where the previously defined or matched method is implemented to be abstract.
-
defaultValue
public DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition<X> defaultValue(AnnotationValue<?, ?> annotationValue) Defines the previously defined or matched method to return the supplied value as an annotation default value. The value must be supplied in its unloaded state, i.e. enumerations asEnumerationDescription
, types asTypeDescription
and annotations asAnnotationDescription
. For supplying loaded types, useDynamicType.Builder.MethodDefinition.ImplementationDefinition.defaultValue(Object, Class)
must be used.- Parameters:
annotationValue
- The value to be defined as a default value.- Returns:
- A builder where the previously defined or matched method is implemented to return an annotation default value.
-
defaultValue
public <V> DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition<X> defaultValue(V value, Class<? extends V> type) Defines the previously defined or matched method to return the supplied value as an annotation default value. The value must be supplied in its loaded state paired with the property type of the value.- Specified by:
defaultValue
in interfaceDynamicType.Builder.MethodDefinition.ImplementationDefinition<X>
- Overrides:
defaultValue
in classDynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBase<X>
- Type Parameters:
V
- The type of the annotation property.- Parameters:
value
- The value to be defined as a default value.type
- The type of the annotation property.- Returns:
- A builder where the previously defined or matched method is implemented to return an annotation default value.
-
materialize
Materializes this instance as a parameter definition with the currently defined properties.- Returns:
- A parameter definition with the currently defined properties.
-