Class DefaultBeanClassBuilder

  • All Implemented Interfaces:
    Serializable, org.drools.core.factmodel.BeanClassBuilder, org.drools.core.factmodel.ClassBuilder, org.kie.api.Service, org.mvel2.asm.Opcodes

    public class DefaultBeanClassBuilder
    extends Object
    implements org.mvel2.asm.Opcodes, org.drools.core.factmodel.BeanClassBuilder, Serializable
    A builder to dynamically build simple Javabean(TM) classes
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean debug  
      • Fields inherited from interface org.mvel2.asm.Opcodes

        AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V9
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void addAnnotationAttribute​(org.drools.core.factmodel.AnnotationDefinition ad, org.mvel2.asm.AnnotationVisitor av)  
      byte[] buildClass​(org.drools.core.factmodel.ClassDefinition classDef, ClassLoader classLoader)
      Dynamically builds, defines and loads a class based on the given class definition
      protected void buildClassAnnotations​(org.drools.core.factmodel.ClassDefinition classDef, org.mvel2.asm.ClassVisitor cw)  
      protected org.mvel2.asm.ClassWriter buildClassHeader​(ClassLoader classLoader, org.drools.core.factmodel.ClassDefinition classDef)
      Defines the class header for the given class definition
      protected void buildConstructors​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildConstructorWithFields​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef, Collection<org.drools.core.factmodel.FieldDefinition> fieldDefs)
      Creates a constructor that takes and assigns values to all fields in the order they are declared.
      protected void buildDefaultConstructor​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef)
      Creates a default constructor for the class
      protected void buildDynamicPropertyMap​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition def)
      A traitable class is a special class with support for dynamic properties and types.
      protected void buildEqualityMethods​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildEquals​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildField​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.FieldDefinition fieldDef)
      Creates the field defined by the given FieldDefinition
      protected void buildFieldAnnotations​(org.drools.core.factmodel.FieldDefinition fieldDef, org.mvel2.asm.FieldVisitor fv)  
      protected void buildFields​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected boolean buildFieldsToString​(org.drools.core.factmodel.ClassDefinition classDef, org.mvel2.asm.MethodVisitor mv, boolean previous)  
      protected void buildFieldTMS​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition def)
      A traitable class is a special class with support for dynamic properties and types.
      protected void buildFieldToString​(org.drools.core.factmodel.FieldDefinition field, org.drools.core.factmodel.ClassDefinition classDef, org.mvel2.asm.MethodVisitor mv, boolean first)  
      protected void buildGetMethod​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef, org.drools.core.factmodel.FieldDefinition fieldDef)
      Creates the get method for the given field definition
      protected void buildGettersAndSetters​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildHashCode​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildMetaData​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildSetMethod​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef, org.drools.core.factmodel.FieldDefinition fieldDef)
      Creates the set method for the given field definition
      protected void buildSystemHashCode​(org.mvel2.asm.ClassWriter cw)  
      protected void buildToString​(org.mvel2.asm.ClassVisitor cw, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void buildTraitMap​(org.mvel2.asm.ClassWriter cw, org.drools.core.factmodel.ClassDefinition classDef)
      A traitable class is a special class with support for dynamic properties and types.
      protected boolean defaultConstructorStart​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef)  
      protected void fieldConstructorStart​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef, Collection<org.drools.core.factmodel.FieldDefinition> fieldDefs)  
      protected boolean initFieldWithDefaultValue​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef, org.drools.core.factmodel.FieldDefinition field)  
      protected void initializeDynamicTypeStructures​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef)
      Initializes the trait map and dynamic property map to empty values
      protected void updateTraitableField​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef, org.drools.core.factmodel.FieldDefinition fieldDef)  
      protected void visitFieldOrGetter​(org.mvel2.asm.MethodVisitor mv, org.drools.core.factmodel.ClassDefinition classDef, org.drools.core.factmodel.FieldDefinition field)  
    • Field Detail

      • debug

        protected boolean debug
    • Constructor Detail

      • DefaultBeanClassBuilder

        public DefaultBeanClassBuilder()
      • DefaultBeanClassBuilder

        public DefaultBeanClassBuilder​(boolean debug)
    • Method Detail

      • buildGettersAndSetters

        protected void buildGettersAndSetters​(org.mvel2.asm.ClassWriter cw,
                                              org.drools.core.factmodel.ClassDefinition classDef)
      • buildEqualityMethods

        protected void buildEqualityMethods​(org.mvel2.asm.ClassWriter cw,
                                            org.drools.core.factmodel.ClassDefinition classDef)
      • buildMetaData

        protected void buildMetaData​(org.mvel2.asm.ClassWriter cw,
                                     org.drools.core.factmodel.ClassDefinition classDef)
      • buildFields

        protected void buildFields​(org.mvel2.asm.ClassWriter cw,
                                   org.drools.core.factmodel.ClassDefinition classDef)
      • buildConstructors

        protected void buildConstructors​(org.mvel2.asm.ClassWriter cw,
                                         org.drools.core.factmodel.ClassDefinition classDef)
      • buildTraitMap

        protected void buildTraitMap​(org.mvel2.asm.ClassWriter cw,
                                     org.drools.core.factmodel.ClassDefinition classDef)
        A traitable class is a special class with support for dynamic properties and types. This method builds the trait map, containing the references to the proxies for each trait carried by an object at a given time.
        Parameters:
        cw -
        classDef -
      • buildDynamicPropertyMap

        protected void buildDynamicPropertyMap​(org.mvel2.asm.ClassWriter cw,
                                               org.drools.core.factmodel.ClassDefinition def)
        A traitable class is a special class with support for dynamic properties and types. This method builds the property map, containing the key/values pairs to implement any property defined in a trait interface but not supported by the traited class fields.
        Parameters:
        cw -
        def -
      • buildFieldTMS

        protected void buildFieldTMS​(org.mvel2.asm.ClassWriter cw,
                                     org.drools.core.factmodel.ClassDefinition def)
        A traitable class is a special class with support for dynamic properties and types. A traitable class in logical mode provides additional control over the values and type(s) of its fields.
        Parameters:
        cw -
        def -
      • buildClassHeader

        protected org.mvel2.asm.ClassWriter buildClassHeader​(ClassLoader classLoader,
                                                             org.drools.core.factmodel.ClassDefinition classDef)
        Defines the class header for the given class definition
      • buildField

        protected void buildField​(org.mvel2.asm.ClassVisitor cw,
                                  org.drools.core.factmodel.FieldDefinition fieldDef)
        Creates the field defined by the given FieldDefinition
        Parameters:
        cw -
        fieldDef -
      • buildDefaultConstructor

        protected void buildDefaultConstructor​(org.mvel2.asm.ClassVisitor cw,
                                               org.drools.core.factmodel.ClassDefinition classDef)
        Creates a default constructor for the class
        Parameters:
        cw -
      • defaultConstructorStart

        protected boolean defaultConstructorStart​(org.mvel2.asm.MethodVisitor mv,
                                                  org.drools.core.factmodel.ClassDefinition classDef)
      • initFieldWithDefaultValue

        protected boolean initFieldWithDefaultValue​(org.mvel2.asm.MethodVisitor mv,
                                                    org.drools.core.factmodel.ClassDefinition classDef,
                                                    org.drools.core.factmodel.FieldDefinition field)
      • initializeDynamicTypeStructures

        protected void initializeDynamicTypeStructures​(org.mvel2.asm.MethodVisitor mv,
                                                       org.drools.core.factmodel.ClassDefinition classDef)
        Initializes the trait map and dynamic property map to empty values
        Parameters:
        mv -
        classDef -
      • buildConstructorWithFields

        protected void buildConstructorWithFields​(org.mvel2.asm.ClassVisitor cw,
                                                  org.drools.core.factmodel.ClassDefinition classDef,
                                                  Collection<org.drools.core.factmodel.FieldDefinition> fieldDefs)
        Creates a constructor that takes and assigns values to all fields in the order they are declared.
        Parameters:
        cw -
        classDef -
      • fieldConstructorStart

        protected void fieldConstructorStart​(org.mvel2.asm.MethodVisitor mv,
                                             org.drools.core.factmodel.ClassDefinition classDef,
                                             Collection<org.drools.core.factmodel.FieldDefinition> fieldDefs)
      • buildSetMethod

        protected void buildSetMethod​(org.mvel2.asm.ClassVisitor cw,
                                      org.drools.core.factmodel.ClassDefinition classDef,
                                      org.drools.core.factmodel.FieldDefinition fieldDef)
        Creates the set method for the given field definition
        Parameters:
        cw -
        classDef -
        fieldDef -
      • buildGetMethod

        protected void buildGetMethod​(org.mvel2.asm.ClassVisitor cw,
                                      org.drools.core.factmodel.ClassDefinition classDef,
                                      org.drools.core.factmodel.FieldDefinition fieldDef)
        Creates the get method for the given field definition
        Parameters:
        cw -
        classDef -
        fieldDef -
      • buildEquals

        protected void buildEquals​(org.mvel2.asm.ClassVisitor cw,
                                   org.drools.core.factmodel.ClassDefinition classDef)
      • buildSystemHashCode

        protected void buildSystemHashCode​(org.mvel2.asm.ClassWriter cw)
      • buildHashCode

        protected void buildHashCode​(org.mvel2.asm.ClassVisitor cw,
                                     org.drools.core.factmodel.ClassDefinition classDef)
      • buildToString

        protected void buildToString​(org.mvel2.asm.ClassVisitor cw,
                                     org.drools.core.factmodel.ClassDefinition classDef)
      • buildFieldsToString

        protected boolean buildFieldsToString​(org.drools.core.factmodel.ClassDefinition classDef,
                                              org.mvel2.asm.MethodVisitor mv,
                                              boolean previous)
      • buildFieldToString

        protected void buildFieldToString​(org.drools.core.factmodel.FieldDefinition field,
                                          org.drools.core.factmodel.ClassDefinition classDef,
                                          org.mvel2.asm.MethodVisitor mv,
                                          boolean first)
      • buildClassAnnotations

        protected void buildClassAnnotations​(org.drools.core.factmodel.ClassDefinition classDef,
                                             org.mvel2.asm.ClassVisitor cw)
      • buildFieldAnnotations

        protected void buildFieldAnnotations​(org.drools.core.factmodel.FieldDefinition fieldDef,
                                             org.mvel2.asm.FieldVisitor fv)
      • addAnnotationAttribute

        public static void addAnnotationAttribute​(org.drools.core.factmodel.AnnotationDefinition ad,
                                                  org.mvel2.asm.AnnotationVisitor av)
      • visitFieldOrGetter

        protected void visitFieldOrGetter​(org.mvel2.asm.MethodVisitor mv,
                                          org.drools.core.factmodel.ClassDefinition classDef,
                                          org.drools.core.factmodel.FieldDefinition field)
      • updateTraitableField

        protected void updateTraitableField​(org.mvel2.asm.MethodVisitor mv,
                                            org.drools.core.factmodel.ClassDefinition classDef,
                                            org.drools.core.factmodel.FieldDefinition fieldDef)