Package org.jrd.agent

Class Transformer

java.lang.Object
org.jrd.agent.Transformer
All Implemented Interfaces:
ClassFileTransformer

public class Transformer extends Object implements ClassFileTransformer
This class represent our transformer for retrieving bytecode.
  • Field Details

    • allowToSaveBytecode

      private boolean allowToSaveBytecode
    • results

      private Map<String,byte[]> results
    • overrides

      private Map<String,byte[]> overrides
  • Constructor Details

    • Transformer

      public Transformer()
  • Method Details

    • transform

      public byte[] transform(ClassLoader loader, String className, Class<?> clazz, ProtectionDomain domain, byte[] classfileBuffer) throws IllegalClassFormatException
      Specified by:
      transform in interface ClassFileTransformer
      Throws:
      IllegalClassFormatException
    • getResult

      public byte[] getResult(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(String name, byte[] body)
    • getOverriddenFqns

      public List<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(String clazz)
    • cleanOverrides

      public List<String> cleanOverrides(Pattern cleanPattern)