public class ExceptionMethod extends Object implements Instrumentation, ByteCodeAppender
Modifier and Type | Class and Description |
---|---|
static interface |
ExceptionMethod.ConstructionDelegate
A construction delegate is responsible for calling a isThrowable's constructor.
|
Instrumentation.Compound, Instrumentation.Context, Instrumentation.ForAbstractMethod, Instrumentation.Simple, Instrumentation.SpecialMethodInvocation, Instrumentation.Target
ByteCodeAppender.Compound, ByteCodeAppender.Simple, ByteCodeAppender.Size
Constructor and Description |
---|
ExceptionMethod(TypeDescription throwableType,
ExceptionMethod.ConstructionDelegate constructionDelegate)
Creates a new instance of an instrumentation for throwing throwables.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender |
appender(Instrumentation.Target instrumentationTarget)
Creates a byte code appender that determines the implementation of the instrumented type's methods.
|
boolean |
appendsCode()
Determines if this byte code appender offers an (possibly empty) implementation of a method.
|
ByteCodeAppender.Size |
apply(org.objectweb.asm.MethodVisitor methodVisitor,
Instrumentation.Context instrumentationContext,
MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.
|
boolean |
equals(Object other) |
int |
hashCode() |
InstrumentedType |
prepare(InstrumentedType instrumentedType)
During the preparation phase of an instrumentation, implementations are eligible to adding fields or methods
to the currently instrumented type.
|
static Instrumentation |
throwing(Class<? extends Throwable> throwable)
Creates an instrumentation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Instrumentation |
throwing(Class<? extends Throwable> exceptionType,
String message)
Creates an instrumentation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Instrumentation |
throwing(TypeDescription throwable)
Creates an instrumentation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
static Instrumentation |
throwing(TypeDescription exceptionType,
String message)
Creates an instrumentation that creates a new instance of the given isThrowable type on each method invocation
which is then thrown immediately.
|
String |
toString() |
public ExceptionMethod(TypeDescription throwableType, ExceptionMethod.ConstructionDelegate constructionDelegate)
throwableType
- The type of the exception to be thrown.constructionDelegate
- A delegate that is responsible for calling the isThrowable's constructor.public static Instrumentation throwing(Class<? extends Throwable> throwable)
throwable
- The type of the isThrowable.public static Instrumentation throwing(TypeDescription throwable)
throwable
- The type of the isThrowable.public static Instrumentation throwing(Class<? extends Throwable> exceptionType, String message)
String
as its argument.exceptionType
- The type of the isThrowable.message
- The string that is handed to the constructor. Usually an exception message.public static Instrumentation throwing(TypeDescription exceptionType, String message)
String
as its argument.exceptionType
- The type of the isThrowable.message
- The string that is handed to the constructor. Usually an exception message.public InstrumentedType prepare(InstrumentedType instrumentedType)
Instrumentation
ByteCodeAppender
that is emitted
on the call to
Instrumentation.appender(net.bytebuddy.instrumentation.Instrumentation.Target)
call. On this method call, loaded type initializers can also be added to the instrumented type.prepare
in interface Instrumentation
instrumentedType
- The instrumented type that is the basis of the ongoing instrumentation.public ByteCodeAppender appender(Instrumentation.Target instrumentationTarget)
Instrumentation
appender
in interface Instrumentation
instrumentationTarget
- The target of the current instrumentation.Instrumentation.prepare(net.bytebuddy.instrumentation.type.InstrumentedType)
.public boolean appendsCode()
ByteCodeAppender
appendsCode
in interface ByteCodeAppender
true
if this byte code appender requires this method to be implemented or false
if this
appender describes an abstract method.public ByteCodeAppender.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Instrumentation.Context instrumentationContext, MethodDescription instrumentedMethod)
ByteCodeAppender
apply
in interface ByteCodeAppender
methodVisitor
- The method visitor to which the byte code appender writes its code to.instrumentationContext
- The instrumentation context of the current type creation process.instrumentedMethod
- The method that is the target of the instrumentation.Copyright © 2014–2015. All rights reserved.