Class DelegateGenerator

All Implemented Interfaces:
BytecodeGeneratorMXBean, org.objectweb.asm.Opcodes

public class DelegateGenerator extends BytecodeGenerator
  • Field Details

  • Constructor Details

    • DelegateGenerator

      public DelegateGenerator()
  • Method Details

    • defineBootstrapClass

      private static void defineBootstrapClass(Method m, String classData) throws ReflectiveOperationException
      Throws:
      ReflectiveOperationException
    • instantiate

      public static Delegate instantiate(Class cls, FieldDescriptor[] fds, byte[] code)
    • instantiate

      public static Delegate instantiate(Class cls, FieldDescriptor[] fds, FieldDescriptor[] defaultFields)
    • generate

      public static byte[] generate(Class cls, FieldDescriptor[] fds, FieldDescriptor[] defaultFields)
    • generateConstructor

      private static void generateConstructor(org.objectweb.asm.ClassVisitor cv, String className)
    • generateCalcSize

      private static void generateCalcSize(org.objectweb.asm.ClassVisitor cv, Class cls, FieldDescriptor[] fds)
    • generateWrite

      private static void generateWrite(org.objectweb.asm.ClassVisitor cv, Class cls, FieldDescriptor[] fds)
    • emitWriteObject

      private static void emitWriteObject(Class cls, org.objectweb.asm.MethodVisitor mv)
    • generateRead

      private static void generateRead(org.objectweb.asm.ClassVisitor cv, Class cls, FieldDescriptor[] fds, FieldDescriptor[] defaultFields, String className)
    • emitReadObject

      private static void emitReadObject(Class cls, org.objectweb.asm.MethodVisitor mv, String className)
    • generateSkip

      private static void generateSkip(org.objectweb.asm.ClassVisitor cv, FieldDescriptor[] fds)
    • generateToJson

      private static void generateToJson(org.objectweb.asm.ClassVisitor cv, Class cls, FieldDescriptor[] fds)
    • generateFromJson

      private static void generateFromJson(org.objectweb.asm.ClassVisitor cv, Class cls, FieldDescriptor[] fds, FieldDescriptor[] defaultFields, String className)
    • generateReadJsonField

      private static void generateReadJsonField(org.objectweb.asm.MethodVisitor mv, FieldDescriptor fd, List<Field> parents, boolean isRecord)
    • generateReadJsonFieldInternal

      private static void generateReadJsonFieldInternal(org.objectweb.asm.MethodVisitor mv, Field ownField)
    • generateCreateRecord

      private static void generateCreateRecord(org.objectweb.asm.MethodVisitor mv, Class<?> cls, FieldDescriptor[] fds, FieldDescriptor[] defaultFields)
    • isConcreteClass

      private static boolean isConcreteClass(Class cls)
    • isNotSerial

      private static boolean isNotSerial(Field field)
    • setDefaultField

      private static void setDefaultField(org.objectweb.asm.MethodVisitor mv, FieldDescriptor fd, boolean isRecord)
    • emitDefaultValue

      private static void emitDefaultValue(org.objectweb.asm.MethodVisitor mv, Field field, Class<?> fieldType, String value)
    • emitTypeCast

      private static void emitTypeCast(org.objectweb.asm.MethodVisitor mv, Class<?> src, Class<?> dst)
    • emitGetSerialField

      private static void emitGetSerialField(org.objectweb.asm.MethodVisitor mv, Field f)
    • emitPutSerialField

      private static void emitPutSerialField(org.objectweb.asm.MethodVisitor mv, Field f, boolean isRecord, FieldDescriptor fd)
    • emitNullGuard

      private static org.objectweb.asm.Label emitNullGuard(org.objectweb.asm.MethodVisitor mv, Class<?> dst)