public static enum ConstructorStrategy.Default extends Enum<ConstructorStrategy.Default> implements ConstructorStrategy
MethodAttributeAppender.Factory
.Modifier and Type | Class and Description |
---|---|
protected static class |
ConstructorStrategy.Default.WithMethodAttributeAppenderFactory
A wrapper for a default constructor strategy which additionally applies a method attribute appender factory.
|
ConstructorStrategy.Default, ConstructorStrategy.ForDefaultConstructor
Enum Constant and Description |
---|
DEFAULT_CONSTRUCTOR
This strategy is adding a default constructor that calls it's super types default constructor.
|
IMITATE_SUPER_CLASS
This strategy is adding all constructors of the instrumented type's super class where each constructor is
directly invoking its signature-equivalent super class constructor.
|
IMITATE_SUPER_CLASS_OPENING
This strategy is adding all constructors of the instrumented type's super class where each constructor is
directly invoking its signature-equivalent super class constructor.
|
IMITATE_SUPER_CLASS_PUBLIC
This strategy is adding all constructors of the instrumented type's super class where each constructor is
directly invoking its signature-equivalent super class constructor.
|
NO_CONSTRUCTORS
This strategy is adding no constructors such that the instrumented type will by default not have any.
|
Modifier and Type | Method and Description |
---|---|
protected abstract List<MethodDescription.Token> |
doExtractConstructors(TypeDescription instrumentedType)
Extracts the relevant method tokens of the instrumented type's constructors.
|
protected abstract MethodRegistry |
doInject(MethodRegistry methodRegistry,
MethodAttributeAppender.Factory methodAttributeAppenderFactory)
Applies the actual injection with a method attribute appender factory supplied.
|
List<MethodDescription.Token> |
extractConstructors(TypeDescription instrumentedType)
Extracts constructors for a given super type.
|
MethodRegistry |
inject(TypeDescription instrumentedType,
MethodRegistry methodRegistry)
Returns a method registry that is capable of creating byte code for the constructors that were
provided by the
ConstructorStrategy.extractConstructors(TypeDescription)
method of this instance. |
protected int |
resolveModifier(int modifiers)
Resolves a constructor's modifiers.
|
static ConstructorStrategy.Default |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static ConstructorStrategy.Default[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
ConstructorStrategy |
with(MethodAttributeAppender.Factory methodAttributeAppenderFactory)
Returns a constructor strategy that supplies the supplied method attribute appender factory.
|
ConstructorStrategy |
withInheritedAnnotations()
Applies this constructor strategy while retaining any of the base constructor's annotations.
|
public static final ConstructorStrategy.Default NO_CONSTRUCTORS
public static final ConstructorStrategy.Default DEFAULT_CONSTRUCTOR
IllegalArgumentException
is thrown. Note that the default
constructor needs to be visible to its sub type for this strategy to work. The declared default constructor of
the created class is declared public and without annotations.public static final ConstructorStrategy.Default IMITATE_SUPER_CLASS
public static final ConstructorStrategy.Default IMITATE_SUPER_CLASS_PUBLIC
public
constructors are
added.public static final ConstructorStrategy.Default IMITATE_SUPER_CLASS_OPENING
public
.public static ConstructorStrategy.Default[] values()
for (ConstructorStrategy.Default c : ConstructorStrategy.Default.values()) System.out.println(c);
public static ConstructorStrategy.Default valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic List<MethodDescription.Token> extractConstructors(TypeDescription instrumentedType)
extractConstructors
in interface ConstructorStrategy
instrumentedType
- The type for which the constructors should be created.protected int resolveModifier(int modifiers)
modifiers
- The actual constructor's modifiers.protected abstract List<MethodDescription.Token> doExtractConstructors(TypeDescription instrumentedType)
instrumentedType
- The type for which to extract the constructors.public MethodRegistry inject(TypeDescription instrumentedType, MethodRegistry methodRegistry)
ConstructorStrategy.extractConstructors(TypeDescription)
method of this instance.inject
in interface ConstructorStrategy
instrumentedType
- The instrumented type.methodRegistry
- The original method registry.protected abstract MethodRegistry doInject(MethodRegistry methodRegistry, MethodAttributeAppender.Factory methodAttributeAppenderFactory)
methodRegistry
- The method registry into which to inject the constructors.methodAttributeAppenderFactory
- The method attribute appender to use.public ConstructorStrategy with(MethodAttributeAppender.Factory methodAttributeAppenderFactory)
methodAttributeAppenderFactory
- The method attribute appender factory to use.public ConstructorStrategy withInheritedAnnotations()
Copyright © 2014–2018. All rights reserved.