Package org.jrd.agent
Class Transformer
- java.lang.Object
-
- org.jrd.agent.Transformer
-
- All Implemented Interfaces:
java.lang.instrument.ClassFileTransformer
public class Transformer extends java.lang.Object implements java.lang.instrument.ClassFileTransformerThis class represent our transformer for retrieving bytecode.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanallowToSaveBytecodeprivate ClassClassLoaderMapoverridesprivate ClassClassLoaderMapresults
-
Constructor Summary
Constructors Constructor Description Transformer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidallowToSaveBytecode()This method allows saving of bytecodejava.util.List<java.lang.String[]>cleanOverrides(java.lang.String patterns)voiddenyToSaveBytecode()This method denies the bytecode to be saved during transformation.java.util.List<java.lang.String[]>getOverriddenFqnPairs()java.util.List<java.lang.String>getOverriddenFqns()byte[]getResult(java.lang.String name, java.lang.String classloader)Returns bytecode of transformed class.(package private) voidremoveOverride(java.lang.String clazz)(package private) voidremoveOverride(java.lang.String clazz, java.lang.String classloader)voidresetLastValidResult()Resets the map with results to empty mapvoidsetOverride(java.lang.String name, byte[] body, java.lang.String classloader)byte[]transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> clazz, java.security.ProtectionDomain domain, byte[] classfileBuffer)
-
-
-
Field Detail
-
allowToSaveBytecode
private boolean allowToSaveBytecode
-
results
private ClassClassLoaderMap results
-
overrides
private ClassClassLoaderMap overrides
-
-
Method Detail
-
transform
public byte[] transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> clazz, java.security.ProtectionDomain domain, byte[] classfileBuffer) throws java.lang.instrument.IllegalClassFormatException- Specified by:
transformin interfacejava.lang.instrument.ClassFileTransformer- Throws:
java.lang.instrument.IllegalClassFormatException
-
getResult
public byte[] getResult(java.lang.String name, java.lang.String classloader)Returns bytecode of transformed class.- Parameters:
name- name of class we want to get- Returns:
- bytes of given class
-
setOverride
public void setOverride(java.lang.String name, byte[] body, java.lang.String classloader)
-
getOverriddenFqns
public java.util.List<java.lang.String> getOverriddenFqns()
-
getOverriddenFqnPairs
public java.util.List<java.lang.String[]> getOverriddenFqnPairs()
-
resetLastValidResult
public void resetLastValidResult()
Resets the map with results to empty map
-
allowToSaveBytecode
public void allowToSaveBytecode()
This method allows saving of bytecode
-
denyToSaveBytecode
public void denyToSaveBytecode()
This method denies the bytecode to be saved during transformation.
-
removeOverride
void removeOverride(java.lang.String clazz)
-
removeOverride
void removeOverride(java.lang.String clazz, java.lang.String classloader)
-
cleanOverrides
public java.util.List<java.lang.String[]> cleanOverrides(java.lang.String patterns)
-
-