public abstract class AbstractImplementationClassTransformer extends java.lang.Object implements StartableClassFileTransformer
| Modifier and Type | Field and Description |
|---|---|
protected int |
classreaderFlags |
protected PointCutClassTransformer |
classTransformer |
protected java.lang.Class |
interfaceToImplement |
protected IAgentLogger |
logger |
protected java.lang.String |
originalInterface |
protected org.objectweb.asm.Type |
originalInterfaceType |
| Constructor and Description |
|---|
AbstractImplementationClassTransformer(PointCutClassTransformer classTransformer,
boolean enabled,
java.lang.Class interfaceToImplement) |
AbstractImplementationClassTransformer(PointCutClassTransformer classTransformer,
boolean enabled,
java.lang.Class interfaceToImplement,
ClassMatcher classMatcher,
ClassMatcher skipMatcher,
java.lang.String originalInterfaceName) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract org.objectweb.asm.ClassVisitor |
createClassVisitor(org.objectweb.asm.ClassReader cr,
org.objectweb.asm.ClassWriter cw,
java.lang.String className,
java.lang.ClassLoader loader) |
protected boolean |
excludeClass(java.lang.String className) |
protected int |
getClassReaderFlags() |
protected boolean |
isGenericInterfaceSupportEnabled() |
void |
start(InstrumentationProxy instrumentation,
boolean isRetransformSupported)
Start method to be called after this transformer is added to
Instrumentation. |
byte[] |
transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class<?> classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer) |
protected final IAgentLogger logger
protected final int classreaderFlags
protected final PointCutClassTransformer classTransformer
protected final java.lang.Class interfaceToImplement
protected final java.lang.String originalInterface
protected final org.objectweb.asm.Type originalInterfaceType
public AbstractImplementationClassTransformer(PointCutClassTransformer classTransformer, boolean enabled, java.lang.Class interfaceToImplement, ClassMatcher classMatcher, ClassMatcher skipMatcher, java.lang.String originalInterfaceName)
public AbstractImplementationClassTransformer(PointCutClassTransformer classTransformer, boolean enabled, java.lang.Class interfaceToImplement)
public void start(InstrumentationProxy instrumentation, boolean isRetransformSupported)
StartableClassFileTransformerInstrumentation.start in interface StartableClassFileTransformerpublic byte[] transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class<?> classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws java.lang.instrument.IllegalClassFormatException
transform in interface java.lang.instrument.ClassFileTransformerjava.lang.instrument.IllegalClassFormatExceptionprotected boolean excludeClass(java.lang.String className)
protected boolean isGenericInterfaceSupportEnabled()
protected int getClassReaderFlags()
protected abstract org.objectweb.asm.ClassVisitor createClassVisitor(org.objectweb.asm.ClassReader cr,
org.objectweb.asm.ClassWriter cw,
java.lang.String className,
java.lang.ClassLoader loader)