Class OptionalDirectCopyClassTransformer

All Implemented Interfaces:
jakarta.persistence.spi.ClassTransformer, BroadleafClassTransformer, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean

public class OptionalDirectCopyClassTransformer extends DirectCopyClassTransformer implements org.springframework.beans.factory.BeanFactoryAware
Based on a Spring property value resolving to a boolean, this ClassTransformer will optionally perform bytecode transformations.
Author:
Jeff Fischer
  • Field Details

    • propertyName

      protected String propertyName
    • beanFactory

      protected org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory
  • Constructor Details

    • OptionalDirectCopyClassTransformer

      public OptionalDirectCopyClassTransformer(String moduleName)
  • Method Details

    • setBeanFactory

      public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
      Specified by:
      setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
      Throws:
      org.springframework.beans.BeansException
    • transform

      public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws jakarta.persistence.spi.TransformerException
      Will return null if the Spring property value defined in propertyName resolves to false, or if an exception occurs while trying to determine the value for the property.
      Specified by:
      transform in interface jakarta.persistence.spi.ClassTransformer
      Overrides:
      transform in class DirectCopyClassTransformer
      Parameters:
      loader -
      className -
      classBeingRedefined -
      protectionDomain -
      classfileBuffer -
      Returns:
      Throws:
      IllegalClassFormatException
      jakarta.persistence.spi.TransformerException
    • getPropertyName

      public String getPropertyName()
    • setPropertyName

      public void setPropertyName(String propertyName)