Package | Description |
---|---|
net.bytebuddy.dynamic.scaffold |
This package contains helper types and implementations that are responsible for the actual writing of a byte array
representing a Java class.
|
net.bytebuddy.dynamic.scaffold.subclass |
All classes and types in this package are related to creating a
DynamicType by
creating a subclass of a given type. |
net.bytebuddy.instrumentation |
The instrumentation package contains any logic for intercepting method calls.
|
net.bytebuddy.instrumentation.attribute |
All types and classes in this package are responsible for writing attributes for a given Java byte code element,
i.e.
|
net.bytebuddy.instrumentation.method |
This package contains types and implementations for describing a Java byte code method which can be any byte code
container, i.e.
|
net.bytebuddy.instrumentation.method.bytecode |
Types and classes in this package are responsible for creating Java byte code for a given byte code target
which is represented by a
MethodDescription . |
net.bytebuddy.instrumentation.method.bytecode.bind |
The types and classes of this package are responsible for binding a method call to calling another method.
|
net.bytebuddy.instrumentation.method.bytecode.bind.annotation |
This package contains annotations, types and classes that are responsible for binding a method to calling another
method by interpreting annotations that indicate how a method should be bound to another method.
|
net.bytebuddy.instrumentation.method.bytecode.stack.constant |
StackManipulation s in this package are responsible for
creating compile-time constants and pushing them onto the operand stack. |
net.bytebuddy.instrumentation.method.bytecode.stack.member |
StackManipulation s of this package are responsible for
accessing type or method members, i.e. |
net.bytebuddy.instrumentation.method.matcher |
This package contains types and classes that serve as predicates for
determining if a given
MethodDescription matches a certain criteria. |
net.bytebuddy.instrumentation.type |
This package contains types and implementations for describing a Java type, i.e.
|
net.bytebuddy.instrumentation.type.auxiliary |
Auxiliary types describe helper types that aid as a supplementary to a given
InstrumentedType . |
Modifier and Type | Method and Description |
---|---|
MethodDescription |
BridgeMethodResolver.Simple.BridgeTarget.extract()
Extracts the resolved bridge method target or throws an exception if no such target exists.
|
MethodDescription |
BridgeMethodResolver.Simple.BridgeTarget.Unknown.extract() |
MethodDescription |
BridgeMethodResolver.Simple.BridgeTarget.Resolved.extract() |
MethodDescription |
BridgeMethodResolver.Simple.BridgeTarget.Candidate.extract() |
MethodDescription |
TypeExtensionDelegate.registerAccessorFor(Instrumentation.SpecialMethodInvocation specialMethodInvocation) |
MethodDescription |
BridgeMethodResolver.resolve(MethodDescription methodDescription)
Resolves a method which is potentially a bridge method.
|
MethodDescription |
BridgeMethodResolver.NoOp.resolve(MethodDescription methodDescription) |
MethodDescription |
BridgeMethodResolver.Simple.resolve(MethodDescription methodDescription) |
Modifier and Type | Method and Description |
---|---|
Iterable<MethodDescription> |
TypeExtensionDelegate.getRegisteredAccessors()
Returns an iterable of the registered accessors.
|
Modifier and Type | Method and Description |
---|---|
BridgeMethodResolver.Simple.BridgeTarget |
BridgeMethodResolver.Simple.ConflictHandler.choose(MethodDescription bridgeMethod,
MethodList targetCandidates)
Returns a target method for the given bridge method out of the given list of candidate methods.
|
MethodDescription |
BridgeMethodResolver.resolve(MethodDescription methodDescription)
Resolves a method which is potentially a bridge method.
|
MethodDescription |
BridgeMethodResolver.NoOp.resolve(MethodDescription methodDescription) |
MethodDescription |
BridgeMethodResolver.Simple.resolve(MethodDescription methodDescription) |
TypeWriter.MethodPool.Entry |
TypeWriter.MethodPool.target(MethodDescription methodDescription)
Looks up a handler entry for a given method.
|
TypeWriter.MethodPool.Entry |
TypeExtensionDelegate.target(MethodDescription methodDescription) |
Modifier and Type | Method and Description |
---|---|
TypeWriter.InMethodPhase<T> |
TypeWriter.InMethodPhase.write(Iterable<? extends MethodDescription> methodDescriptions,
TypeWriter.MethodPool methodPool)
Adds a number of methods as described by the argument to the type that is created by this type
writer where the implementations and annotations are received from the given compiled method registry.
|
Constructor and Description |
---|
Candidate(MethodDescription target)
Creates a new bridge method target candidate.
|
Resolved(MethodDescription target)
Creates a new resolved bridge method target.
|
Modifier and Type | Method and Description |
---|---|
protected Instrumentation.SpecialMethodInvocation |
SubclassInstrumentationTarget.invokeSuper(MethodDescription methodDescription) |
Constructor and Description |
---|
SubclassInstrumentedType(ClassFileVersion classFileVersion,
TypeDescription superClass,
List<TypeDescription> interfaces,
int modifiers,
String name,
List<? extends FieldDescription> fieldDescriptions,
List<? extends MethodDescription> methodDescriptions,
TypeInitializer typeInitializer)
Creates a new immutable type instrumentation for a loaded superclass.
|
Modifier and Type | Field and Description |
---|---|
protected Map<TypeDescription,Map<String,MethodDescription>> |
Instrumentation.Target.AbstractBase.defaultMethods
A map of default methods by their unique signature.
|
protected Map<String,MethodDescription> |
Instrumentation.Target.AbstractBase.invokableMethods
A map of invokable methods by their unique signature.
|
Modifier and Type | Method and Description |
---|---|
MethodDescription |
Instrumentation.SpecialMethodInvocation.getMethodDescription()
Returns the method that represents this special method invocation.
|
MethodDescription |
Instrumentation.SpecialMethodInvocation.Illegal.getMethodDescription() |
MethodDescription |
Instrumentation.SpecialMethodInvocation.Simple.getMethodDescription() |
MethodDescription |
Instrumentation.Target.MethodLookup.resolve(MethodDescription methodDescription,
Map<String,MethodDescription> invokableMethods,
BridgeMethodResolver bridgeMethodResolver)
Resolves the target method that is actually invoked.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender.Size |
StubMethod.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
ByteCodeAppender.Size |
Instrumentation.ForAbstractMethod.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
ByteCodeAppender.Size |
FixedValue.ForPoolValue.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
ByteCodeAppender.Size |
FieldAccessor.Appender.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
ByteCodeAppender.Size |
ExceptionMethod.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
protected ByteCodeAppender.Size |
InvocationHandlerAdapter.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod,
TypeDescription instrumentedType,
StackManipulation preparingManipulation)
Applies an instrumentation that delegates to a invocation handler.
|
protected ByteCodeAppender.Size |
FixedValue.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod,
TypeDescription fixedValueType,
StackManipulation valueLoadingInstruction)
Blueprint method that for applying the actual instrumentation.
|
protected ByteCodeAppender.Size |
FieldAccessor.applyGetter(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
FieldDescription fieldDescription,
MethodDescription methodDescription)
Applies a field getter instrumentation.
|
protected ByteCodeAppender.Size |
FieldAccessor.applySetter(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
FieldDescription fieldDescription,
MethodDescription methodDescription)
Applies a field setter instrumentation.
|
protected abstract String |
FieldAccessor.getFieldName(MethodDescription targetMethod)
Locates a field's name.
|
protected String |
FieldAccessor.ForBeanProperty.getFieldName(MethodDescription targetMethod) |
protected String |
FieldAccessor.ForNamedField.getFieldName(MethodDescription targetMethod) |
protected abstract Instrumentation.SpecialMethodInvocation |
Instrumentation.Target.AbstractBase.invokeSuper(MethodDescription methodDescription)
Invokes the fully resolved method to be invoked by a super method call.
|
Instrumentation.SpecialMethodInvocation |
Instrumentation.Target.invokeSuper(MethodDescription methodDescription,
Instrumentation.Target.MethodLookup methodLookup)
Creates a special method invocation for invoking the super method of the given method.
|
Instrumentation.SpecialMethodInvocation |
Instrumentation.Target.AbstractBase.invokeSuper(MethodDescription methodDescription,
Instrumentation.Target.MethodLookup methodLookup) |
static Instrumentation.SpecialMethodInvocation |
Instrumentation.SpecialMethodInvocation.Simple.of(MethodDescription methodDescription,
TypeDescription typeDescription)
Creates a special method invocation for a given invocation target.
|
MethodDescription |
Instrumentation.Target.MethodLookup.resolve(MethodDescription methodDescription,
Map<String,MethodDescription> invokableMethods,
BridgeMethodResolver bridgeMethodResolver)
Resolves the target method that is actually invoked.
|
Modifier and Type | Method and Description |
---|---|
MethodDescription |
Instrumentation.Target.MethodLookup.resolve(MethodDescription methodDescription,
Map<String,MethodDescription> invokableMethods,
BridgeMethodResolver bridgeMethodResolver)
Resolves the target method that is actually invoked.
|
Modifier and Type | Method and Description |
---|---|
void |
MethodAttributeAppender.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription)
Applies this attribute appender to a given method visitor.
|
void |
MethodAttributeAppender.NoOp.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
void |
MethodAttributeAppender.ForInstrumentedMethod.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
void |
MethodAttributeAppender.ForAnnotation.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
void |
MethodAttributeAppender.ForLoadedMethod.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
void |
MethodAttributeAppender.ForLoadedConstructor.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
void |
MethodAttributeAppender.Compound.apply(org.objectweb.asm.MethodVisitor methodVisitor,
MethodDescription methodDescription) |
Modifier and Type | Class and Description |
---|---|
static class |
MethodDescription.AbstractMethodDescription
An abstract base implementation of a method description.
|
static class |
MethodDescription.ForLoadedConstructor
An implementation of a method description for a loaded constructor.
|
static class |
MethodDescription.ForLoadedMethod
An implementation of a method description for a loaded method.
|
static class |
MethodDescription.Latent
A latent method description describes a method that is not attached to a declaring
TypeDescription but stands for itself. |
static class |
MethodLookupEngine.ConflictingInterfaceMethod
This
MethodDescription represents methods that are defined
ambiguously on several interfaces of a common type. |
Modifier and Type | Method and Description |
---|---|
MethodDescription |
MethodList.ForLoadedType.get(int index) |
MethodDescription |
MethodList.Explicit.get(int index) |
MethodDescription |
MethodList.Empty.get(int index) |
MethodDescription |
MethodList.getOnly()
Returns the only element in this method list or throws an exception if there is more than or less than
one element in this list.
|
MethodDescription |
MethodList.ForLoadedType.getOnly() |
MethodDescription |
MethodList.Explicit.getOnly() |
MethodDescription |
MethodList.Empty.getOnly() |
Modifier and Type | Method and Description |
---|---|
abstract Map<TypeDescription,Set<MethodDescription>> |
MethodLookupEngine.Default.DefaultMethodLookup.apply(net.bytebuddy.instrumentation.method.MethodLookupEngine.Default.MethodBucket methodBucket,
Collection<TypeDescription> interfaces,
Collection<TypeDescription> defaultMethodRelevantInterfaces)
Applies default method extraction.
|
Map<TypeDescription,Set<MethodDescription>> |
MethodLookupEngine.Finding.getInvokableDefaultMethods()
Returns a map of interfaces that are eligible for default method invocation on the type this finding
was created for.
|
Map<TypeDescription,Set<MethodDescription>> |
MethodLookupEngine.Finding.Default.getInvokableDefaultMethods() |
Constructor and Description |
---|
ConflictingInterfaceMethod(TypeDescription virtualHost,
List<MethodDescription> methodDescriptions)
Creates a new conflicting interface method.
|
Default(TypeDescription lookedUpType,
MethodList invokableMethods,
Map<TypeDescription,Set<MethodDescription>> invokableDefaultMethods)
Creates a default of a
MethodLookupEngine.Finding . |
Explicit(List<? extends MethodDescription> methodDescriptions)
Creates a new wrapper for a given list of methods.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender.Size |
ByteCodeAppender.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.
|
ByteCodeAppender.Size |
ByteCodeAppender.Compound.apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod) |
Modifier and Type | Method and Description |
---|---|
MethodDescription |
MethodDelegationBinder.MethodBinding.getTarget()
Returns the target method of the method binding attempt.
|
MethodDescription |
MethodDelegationBinder.MethodBinding.Illegal.getTarget() |
Modifier and Type | Method and Description |
---|---|
MethodDelegationBinder.MethodBinding |
MethodDelegationBinder.Processor.process(Instrumentation.Target instrumentationTarget,
MethodDescription source,
Iterable<? extends MethodDescription> targets) |
Constructor and Description |
---|
Builder(MethodDelegationBinder.MethodInvoker methodInvoker,
MethodDescription target)
Creates a new builder for the binding of a given method.
|
Modifier and Type | Method and Description |
---|---|
MethodDelegationBinder.ParameterBinding<?> |
AllArguments.Binder.bind(AllArguments annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
Argument.Binder.bind(Argument argument,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
DefaultCall.Binder.bind(DefaultCall annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.MethodBinding |
TargetMethodAnnotationDrivenBinder.bind(Instrumentation.Target instrumentationTarget,
MethodDescription source,
MethodDescription target) |
MethodDelegationBinder.ParameterBinding<?> |
Origin.Binder.bind(Origin annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
Pipe.Binder.bind(Pipe annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
SuperCall.Binder.bind(SuperCall annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
Super.Binder.bind(Super annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
This.Binder.bind(This annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner) |
MethodDelegationBinder.ParameterBinding<?> |
TargetMethodAnnotationDrivenBinder.ParameterBinder.bind(T annotation,
int targetParameterIndex,
MethodDescription source,
MethodDescription target,
Instrumentation.Target instrumentationTarget,
Assigner assigner)
Creates a parameter binding for the given target parameter.
|
static boolean |
RuntimeType.Verifier.check(MethodDescription methodDescription)
Checks if method return values should be assigned by considering the run time type.
|
static boolean |
IgnoreForBinding.Verifier.check(MethodDescription methodDescription)
Validates if a method should be ignored for binding.
|
static boolean |
RuntimeType.Verifier.check(MethodDescription methodDescription,
int parameterIndex)
Checks if a method parameter should be assigned by considering the run time type.
|
Iterator<T> |
TargetMethodAnnotationDrivenBinder.DefaultsProvider.makeIterator(Instrumentation.Target instrumentationTarget,
MethodDescription source,
MethodDescription target)
Creates an iterator from which a value is pulled each time no processable annotation is found on a
method parameter.
|
Iterator<Annotation> |
TargetMethodAnnotationDrivenBinder.DefaultsProvider.Empty.makeIterator(Instrumentation.Target instrumentationTarget,
MethodDescription source,
MethodDescription target) |
Iterator<Argument> |
Argument.NextUnboundAsDefaultsProvider.makeIterator(Instrumentation.Target instrumentationTarget,
MethodDescription source,
MethodDescription target) |
MethodDelegationBinder.AmbiguityResolver.Resolution |
BindingPriority.Resolver.resolve(MethodDescription source,
MethodDelegationBinder.MethodBinding left,
MethodDelegationBinder.MethodBinding right) |
Constructor and Description |
---|
Binder(MethodDescription forwardingMethod)
Creates a new binder.
|
Redirection(TypeDescription forwardingType,
MethodDescription sourceMethod,
Assigner assigner,
boolean serializableProxy,
MethodLookupEngine.Factory methodLookupEngineFactory)
Creates a new redirection.
|
Modifier and Type | Field and Description |
---|---|
protected MethodDescription |
MethodConstant.methodDescription
A description of the method to be loaded onto the stack.
|
Modifier and Type | Method and Description |
---|---|
static StackManipulation |
MethodConstant.forMethod(MethodDescription methodDescription)
Creates a stack manipulation that loads a method constant onto the operand stack.
|
Constructor and Description |
---|
MethodConstant(MethodDescription methodDescription)
Creates a new method constant.
|
Modifier and Type | Method and Description |
---|---|
static StackManipulation |
MethodVariableAccess.forBridgeMethodInvocation(MethodDescription bridgeMethod,
MethodDescription targetMethod)
Creates a stack manipulation for loading all parameters of a Java bridge method onto the operand stack where
all variables of the bridge method are casted to the parameter types of the target method.
|
static MethodInvocation.WithImplicitInvocationTargetType |
MethodInvocation.invoke(MethodDescription methodDescription)
Creates a method invocation with an implicitly determined invocation type.
|
static StackManipulation |
MethodVariableAccess.loadArguments(MethodDescription methodDescription)
Loads all method arguments for a given method onto the operand stack.
|
static StackManipulation |
MethodVariableAccess.loadThisReferenceAndArguments(MethodDescription methodDescription)
Loads all method arguments for a given method onto the operand stack, including a reference to
this ,
if the method is non-static. |
Modifier and Type | Method and Description |
---|---|
static JunctionMethodMatcher |
MethodMatchers.hasSameByteCodeSignatureAs(MethodDescription methodDescription)
Selects methods with identical signature to the given method description where the return type
is considered to be part of the signature.
|
static JunctionMethodMatcher |
MethodMatchers.hasSameJavaCompilerSignatureAs(MethodDescription methodDescription)
Checks if a method has a Java compiler equal signature to another method which includes the name of the method
and the exact types and order of its parameters.
|
static JunctionMethodMatcher |
MethodMatchers.is(MethodDescription methodDescription)
A method matcher that matches a given method description.
|
static JunctionMethodMatcher |
MethodMatchers.isBridgeMethodCompatibleTo(MethodDescription methodDescription)
Determines if a method could be the target of the given method for a compile time bridge.
|
boolean |
MethodMatcher.matches(MethodDescription methodDescription)
Determines if a method matches for this
MethodMatcher . |
boolean |
JunctionMethodMatcher.Conjunction.matches(MethodDescription methodDescription) |
boolean |
JunctionMethodMatcher.Disjunction.matches(MethodDescription methodDescription) |
Modifier and Type | Class and Description |
---|---|
protected class |
InstrumentedType.AbstractBase.MethodToken
An implementation of a new method or constructor for the enclosing instrumented type.
|
Modifier and Type | Field and Description |
---|---|
protected List<MethodDescription> |
InstrumentedType.AbstractBase.methodDescriptions
A list of method descriptions registered for this instrumented type.
|
Modifier and Type | Method and Description |
---|---|
MethodDescription |
TypeDescription.getEnclosingMethod()
Returns a description of the enclosing method of this type.
|
MethodDescription |
TypeDescription.ForLoadedType.getEnclosingMethod() |
MethodDescription |
InstrumentedType.AbstractBase.getEnclosingMethod() |
Constructor and Description |
---|
AbstractBase(TypeInitializer typeInitializer,
String typeInternalName,
List<? extends FieldDescription> fieldDescriptions,
List<? extends MethodDescription> methodDescriptions)
Creates a new instrumented type with the given type initializer and field and methods.
|
Modifier and Type | Method and Description |
---|---|
MethodDescription |
AuxiliaryType.MethodAccessorFactory.registerAccessorFor(Instrumentation.SpecialMethodInvocation specialMethodInvocation)
Registers an accessor method for a
Instrumentation.SpecialMethodInvocation which cannot be triggered
invoked directly from outside a type. |
Copyright © 2014. All rights reserved.