Class BeansAccessBuilder

java.lang.Object
net.minidev.asm.BeansAccessBuilder

public class BeansAccessBuilder extends Object
A builder class for dynamically creating BeansAccess classes for accessing bean properties efficiently. This class utilizes the ASM library to generate bytecode at runtime, thereby bypassing the need for Java reflection.
  • Field Details

    • METHOD_ACCESS_NAME

      private static String METHOD_ACCESS_NAME
    • type

      final Class<?> type
    • accs

      final Accessor[] accs
    • loader

      final DynamicClassLoader loader
    • className

      final String className
    • accessClassName

      final String accessClassName
    • accessClassNameInternal

      final String accessClassNameInternal
    • classNameInternal

      final String classNameInternal
    • convMtds

      final HashMap<Class<?>,Method> convMtds
    • exceptionClass

      Class<? extends Exception> exceptionClass
  • Constructor Details

    • BeansAccessBuilder

      public BeansAccessBuilder(Class<?> type, Accessor[] accs, DynamicClassLoader loader)
      Initializes a new builder instance for a given bean class.
      Parameters:
      type - type to be access
      accs - used accessor
      loader - Loader used to store the generated class
  • Method Details

    • addConversion

      public void addConversion(Iterable<Class<?>> conv)
      register multiple new conversion
      Parameters:
      conv - conv list
    • addConversion

      public void addConversion(Class<?> conv)
      Resister a new conversion
      Parameters:
      conv - the conv
    • bulid

      public Class<?> bulid()
      build the conversion class.
      Returns:
      the new Class
    • dumpDebug

      private void dumpDebug(byte[] data, String destFile)
      Dump Generate Code
    • internalSetFiled

      private void internalSetFiled(org.objectweb.asm.MethodVisitor mv, Accessor acc)
      Dump Set Field Code
      Parameters:
      mv -
      acc -
    • throwExIntParam

      private void throwExIntParam(org.objectweb.asm.MethodVisitor mv, Class<?> exCls)
      add Throws statement with int param 2
    • throwExStrParam

      private void throwExStrParam(org.objectweb.asm.MethodVisitor mv, Class<?> exCls)
      add Throws statement with String param 2
    • ifNotEqJmp

      private void ifNotEqJmp(org.objectweb.asm.MethodVisitor mv, int param, int value, org.objectweb.asm.Label label)
      dump a Jump if not EQ