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 java.util.Map<java.lang.String,byte[]>overridesprivate 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 voidallowToSaveBytecode()This method allows saving of bytecodejava.util.List<java.lang.String>cleanOverrides(java.util.regex.Pattern cleanPattern)voiddenyToSaveBytecode()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) voidremoveOverride(java.lang.String clazz)voidresetLastValidResult()Resets the map with results to empty mapvoidsetOverride(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:
transformin 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)
-
-