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.HashMap<java.lang.String,byte[]>
overrides
private java.util.HashMap<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 bytecodevoid
denyToSaveBytecode()
This method denies the bytecode to be saved during transformation.byte[]
getResult(java.lang.String name)
Returns bytecode of transformed class.void
resetLastValidResult()
Resets the map with results to empty mapvoid
resetOverrides()
void
setOverride(java.lang.String name, byte[] body)
byte[]
transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer)
-
-
-
Method Detail
-
transform
public 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
- 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)
-
resetLastValidResult
public void resetLastValidResult()
Resets the map with results to empty map
-
resetOverrides
public void resetOverrides()
-
allowToSaveBytecode
public void allowToSaveBytecode()
This method allows saving of bytecode
-
denyToSaveBytecode
public void denyToSaveBytecode()
This method denies the bytecode to be saved during transformation.
-
-