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.ClassFileTransformer
This class represent our transformer for retrieving bytecode.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowToSaveBytecode
private java.util.Map<java.lang.String,byte[]>
overrides
private java.util.Map<java.lang.String,byte[]>
results
-
Constructor Summary
Constructors Constructor Description Transformer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
allowToSaveBytecode()
This method allows saving of bytecodejava.util.List<java.lang.String>
cleanOverrides(java.util.regex.Pattern cleanPattern)
void
denyToSaveBytecode()
This method denies the bytecode to be saved during transformation.java.util.List<java.lang.String>
getOverriddenFqns()
byte[]
getResult(java.lang.String name)
Returns bytecode of transformed class.(package private) void
removeOverride(java.lang.String clazz)
void
resetLastValidResult()
Resets the map with results to empty mapvoid
setOverride(java.lang.String name, byte[] body)
byte[]
transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> clazz, java.security.ProtectionDomain domain, byte[] classfileBuffer)
-
-
-
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:
transform
in interfacejava.lang.instrument.ClassFileTransformer
- Throws:
java.lang.instrument.IllegalClassFormatException
-
getResult
public byte[] getResult(java.lang.String name)
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)
-
getOverriddenFqns
public java.util.List<java.lang.String> getOverriddenFqns()
-
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)
-
cleanOverrides
public java.util.List<java.lang.String> cleanOverrides(java.util.regex.Pattern cleanPattern)
-
-