public class org.hibernate.type.ComponentType extends org.hibernate.type.AbstractType implements org.hibernate.type.CompositeType, org.hibernate.type.ProcedureParameterExtractionAware
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.type.ComponentType
  super_class: org.hibernate.type.AbstractType
{
  private final org.hibernate.type.TypeFactory$TypeScope typeScope;
    descriptor: Lorg/hibernate/type/TypeFactory$TypeScope;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] propertyNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.type.Type[] propertyTypes;
    descriptor: [Lorg/hibernate/type/Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.tuple.ValueGeneration[] propertyValueGenerationStrategies;
    descriptor: [Lorg/hibernate/tuple/ValueGeneration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] propertyNullability;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final int propertySpan;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final org.hibernate.engine.spi.CascadeStyle[] cascade;
    descriptor: [Lorg/hibernate/engine/spi/CascadeStyle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.FetchMode[] joinedFetch;
    descriptor: [Lorg/hibernate/FetchMode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isKey;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean hasNotNullProperty;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final boolean createEmptyCompositesEnabled;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final org.hibernate.EntityMode entityMode;
    descriptor: Lorg/hibernate/EntityMode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.hibernate.tuple.component.ComponentTuplizer componentTuplizer;
    descriptor: Lorg/hibernate/tuple/component/ComponentTuplizer;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private java.lang.Boolean canDoExtraction;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.hibernate.type.TypeFactory$TypeScope, org.hibernate.tuple.component.ComponentMetamodel);
    descriptor: (Lorg/hibernate/type/TypeFactory$TypeScope;Lorg/hibernate/tuple/component/ComponentMetamodel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.type.TypeFactory$TypeScope typeScope
        start local 2 // org.hibernate.tuple.component.ComponentMetamodel metamodel
         0: .line 58
            aload 0 /* this */
            invokespecial org.hibernate.type.AbstractType.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* typeScope */
            putfield org.hibernate.type.ComponentType.typeScope:Lorg/hibernate/type/TypeFactory$TypeScope;
         2: .line 61
            aload 0 /* this */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.isKey:()Z
            putfield org.hibernate.type.ComponentType.isKey:Z
         3: .line 62
            aload 0 /* this */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.getPropertySpan:()I
            putfield org.hibernate.type.ComponentType.propertySpan:I
         4: .line 63
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.String
            putfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
         5: .line 64
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray org.hibernate.type.Type
            putfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
         6: .line 65
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray org.hibernate.tuple.ValueGeneration
            putfield org.hibernate.type.ComponentType.propertyValueGenerationStrategies:[Lorg/hibernate/tuple/ValueGeneration;
         7: .line 66
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            newarray 4
            putfield org.hibernate.type.ComponentType.propertyNullability:[Z
         8: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray org.hibernate.engine.spi.CascadeStyle
            putfield org.hibernate.type.ComponentType.cascade:[Lorg/hibernate/engine/spi/CascadeStyle;
         9: .line 68
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray org.hibernate.FetchMode
            putfield org.hibernate.type.ComponentType.joinedFetch:[Lorg/hibernate/FetchMode;
        10: .line 70
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 22
        12: .line 71
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.type.TypeFactory$TypeScope org.hibernate.tuple.component.ComponentMetamodel int
      StackMap stack:
            aload 2 /* metamodel */
            iload 3 /* i */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.getProperty:(I)Lorg/hibernate/tuple/StandardProperty;
            astore 4 /* prop */
        start local 4 // org.hibernate.tuple.StandardProperty prop
        13: .line 72
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.getName:()Ljava/lang/String;
            aastore
        14: .line 73
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.getType:()Lorg/hibernate/type/Type;
            aastore
        15: .line 74
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNullability:[Z
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.isNullable:()Z
            bastore
        16: .line 75
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.cascade:[Lorg/hibernate/engine/spi/CascadeStyle;
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            aastore
        17: .line 76
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.joinedFetch:[Lorg/hibernate/FetchMode;
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.getFetchMode:()Lorg/hibernate/FetchMode;
            aastore
        18: .line 77
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.isNullable:()Z
            ifne 20
        19: .line 78
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.type.ComponentType.hasNotNullProperty:Z
        20: .line 80
      StackMap locals: org.hibernate.tuple.StandardProperty
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyValueGenerationStrategies:[Lorg/hibernate/tuple/ValueGeneration;
            iload 3 /* i */
            aload 4 /* prop */
            invokevirtual org.hibernate.tuple.StandardProperty.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            aastore
        end local 4 // org.hibernate.tuple.StandardProperty prop
        21: .line 70
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 12
        end local 3 // int i
        23: .line 83
            aload 0 /* this */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.getEntityMode:()Lorg/hibernate/EntityMode;
            putfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
        24: .line 84
            aload 0 /* this */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.getComponentTuplizer:()Lorg/hibernate/tuple/component/ComponentTuplizer;
            putfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
        25: .line 85
            aload 0 /* this */
            aload 2 /* metamodel */
            invokevirtual org.hibernate.tuple.component.ComponentMetamodel.isCreateEmptyCompositesEnabled:()Z
            putfield org.hibernate.type.ComponentType.createEmptyCompositesEnabled:Z
        26: .line 86
            return
        end local 2 // org.hibernate.tuple.component.ComponentMetamodel metamodel
        end local 1 // org.hibernate.type.TypeFactory$TypeScope typeScope
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Lorg/hibernate/type/ComponentType;
            0   27     1  typeScope  Lorg/hibernate/type/TypeFactory$TypeScope;
            0   27     2  metamodel  Lorg/hibernate/tuple/component/ComponentMetamodel;
           11   23     3          i  I
           13   21     4       prop  Lorg/hibernate/tuple/StandardProperty;
    MethodParameters:
           Name  Flags
      typeScope  
      metamodel  

  public boolean isKey();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 89
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.isKey:Z
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public org.hibernate.EntityMode getEntityMode();
    descriptor: ()Lorg/hibernate/EntityMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 93
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public org.hibernate.tuple.component.ComponentTuplizer getComponentTuplizer();
    descriptor: ()Lorg/hibernate/tuple/component/ComponentTuplizer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 97
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public int getColumnSpan(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 102
            iconst_0
            istore 2 /* span */
        start local 2 // int span
         1: .line 103
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 104
      StackMap locals: int int
      StackMap stack:
            iload 2 /* span */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 3 /* i */
            aaload
            aload 1 /* mapping */
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            iadd
            istore 2 /* span */
         4: .line 103
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 3
        end local 3 // int i
         6: .line 106
            iload 2 /* span */
            ireturn
        end local 2 // int span
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/hibernate/type/ComponentType;
            0    7     1  mapping  Lorg/hibernate/engine/spi/Mapping;
            1    7     2     span  I
            2    6     3        i  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  public int[] sqlTypes(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 112
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.type.ComponentType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            newarray 10
            astore 2 /* sqlTypes */
        start local 2 // int[] sqlTypes
         1: .line 113
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         2: .line 114
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 11
         4: .line 115
      StackMap locals: int[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 4 /* i */
            aaload
            aload 1 /* mapping */
            invokeinterface org.hibernate.type.Type.sqlTypes:(Lorg/hibernate/engine/spi/Mapping;)[I
            astore 5 /* subtypes */
        start local 5 // int[] subtypes
         5: .line 116
            aload 5 /* subtypes */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.engine.spi.Mapping int[] int int int[] top int int int[]
      StackMap stack:
         6: aload 9
            iload 7
            iaload
            istore 6 /* subtype */
        start local 6 // int subtype
         7: .line 117
            aload 2 /* sqlTypes */
            iload 3 /* n */
            iinc 3 /* n */ 1
            iload 6 /* subtype */
            iastore
        end local 6 // int subtype
         8: .line 116
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 6
        end local 5 // int[] subtypes
        10: .line 114
            iinc 4 /* i */ 1
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.engine.spi.Mapping int[] int int
      StackMap stack:
        11: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 4 // int i
        12: .line 120
            aload 2 /* sqlTypes */
            areturn
        end local 3 // int n
        end local 2 // int[] sqlTypes
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/hibernate/type/ComponentType;
            0   13     1   mapping  Lorg/hibernate/engine/spi/Mapping;
            1   13     2  sqlTypes  [I
            2   13     3         n  I
            3   12     4         i  I
            5   10     5  subtypes  [I
            7    8     6   subtype  I
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  public org.hibernate.engine.jdbc.Size[] dictatedSizes(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)[Lorg/hibernate/engine/jdbc/Size;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 126
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.type.ComponentType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            anewarray org.hibernate.engine.jdbc.Size
            astore 2 /* sizes */
        start local 2 // org.hibernate.engine.jdbc.Size[] sizes
         1: .line 127
            iconst_0
            istore 3 /* soFar */
        start local 3 // int soFar
         2: .line 128
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.engine.spi.Mapping org.hibernate.engine.jdbc.Size[] int top int int org.hibernate.type.Type[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* propertyType */
        start local 4 // org.hibernate.type.Type propertyType
         4: .line 129
            aload 4 /* propertyType */
            aload 1 /* mapping */
            invokeinterface org.hibernate.type.Type.dictatedSizes:(Lorg/hibernate/engine/spi/Mapping;)[Lorg/hibernate/engine/jdbc/Size;
            astore 8 /* propertySizes */
        start local 8 // org.hibernate.engine.jdbc.Size[] propertySizes
         5: .line 130
            aload 8 /* propertySizes */
            iconst_0
            aload 2 /* sizes */
            iload 3 /* soFar */
            aload 8 /* propertySizes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 131
            iload 3 /* soFar */
            aload 8 /* propertySizes */
            arraylength
            iadd
            istore 3 /* soFar */
        end local 8 // org.hibernate.engine.jdbc.Size[] propertySizes
        end local 4 // org.hibernate.type.Type propertyType
         7: .line 128
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 3
         9: .line 133
            aload 2 /* sizes */
            areturn
        end local 3 // int soFar
        end local 2 // org.hibernate.engine.jdbc.Size[] sizes
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/hibernate/type/ComponentType;
            0   10     1        mapping  Lorg/hibernate/engine/spi/Mapping;
            1   10     2          sizes  [Lorg/hibernate/engine/jdbc/Size;
            2   10     3          soFar  I
            4    7     4   propertyType  Lorg/hibernate/type/Type;
            5    7     8  propertySizes  [Lorg/hibernate/engine/jdbc/Size;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  public org.hibernate.engine.jdbc.Size[] defaultSizes(org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/engine/spi/Mapping;)[Lorg/hibernate/engine/jdbc/Size;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.engine.spi.Mapping mapping
         0: .line 139
            aload 0 /* this */
            aload 1 /* mapping */
            invokevirtual org.hibernate.type.ComponentType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            anewarray org.hibernate.engine.jdbc.Size
            astore 2 /* sizes */
        start local 2 // org.hibernate.engine.jdbc.Size[] sizes
         1: .line 140
            iconst_0
            istore 3 /* soFar */
        start local 3 // int soFar
         2: .line 141
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.engine.spi.Mapping org.hibernate.engine.jdbc.Size[] int top int int org.hibernate.type.Type[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* propertyType */
        start local 4 // org.hibernate.type.Type propertyType
         4: .line 142
            aload 4 /* propertyType */
            aload 1 /* mapping */
            invokeinterface org.hibernate.type.Type.defaultSizes:(Lorg/hibernate/engine/spi/Mapping;)[Lorg/hibernate/engine/jdbc/Size;
            astore 8 /* propertySizes */
        start local 8 // org.hibernate.engine.jdbc.Size[] propertySizes
         5: .line 143
            aload 8 /* propertySizes */
            iconst_0
            aload 2 /* sizes */
            iload 3 /* soFar */
            aload 8 /* propertySizes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 144
            iload 3 /* soFar */
            aload 8 /* propertySizes */
            arraylength
            iadd
            istore 3 /* soFar */
        end local 8 // org.hibernate.engine.jdbc.Size[] propertySizes
        end local 4 // org.hibernate.type.Type propertyType
         7: .line 141
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 3
         9: .line 146
            aload 2 /* sizes */
            areturn
        end local 3 // int soFar
        end local 2 // org.hibernate.engine.jdbc.Size[] sizes
        end local 1 // org.hibernate.engine.spi.Mapping mapping
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/hibernate/type/ComponentType;
            0   10     1        mapping  Lorg/hibernate/engine/spi/Mapping;
            1   10     2          sizes  [Lorg/hibernate/engine/jdbc/Size;
            2   10     3          soFar  I
            4    7     4   propertyType  Lorg/hibernate/type/Type;
            5    7     8  propertySizes  [Lorg/hibernate/engine/jdbc/Size;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      mapping  

  public final boolean isComponentType();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 152
            iconst_1
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public java.lang.Class getReturnedClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 156
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.getMappedClass:()Ljava/lang/Class;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public boolean isSame(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
         0: .line 161
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 162
            iconst_1
            ireturn
         2: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 3 /* xvalues */
        start local 3 // java.lang.Object[] xvalues
         3: .line 166
            aload 0 /* this */
            aload 2 /* y */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 4 /* yvalues */
        start local 4 // java.lang.Object[] yvalues
         4: .line 167
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 9
         6: .line 168
      StackMap locals: java.lang.Object[] java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 5 /* i */
            aaload
            aload 3 /* xvalues */
            iload 5 /* i */
            aaload
            aload 4 /* yvalues */
            iload 5 /* i */
            aaload
            invokeinterface org.hibernate.type.Type.isSame:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 8
         7: .line 169
            iconst_0
            ireturn
         8: .line 167
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 6
        end local 5 // int i
        10: .line 172
            iconst_1
            ireturn
        end local 4 // java.lang.Object[] yvalues
        end local 3 // java.lang.Object[] xvalues
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/hibernate/type/ComponentType;
            0   11     1        x  Ljava/lang/Object;
            0   11     2        y  Ljava/lang/Object;
            3   11     3  xvalues  [Ljava/lang/Object;
            4   11     4  yvalues  [Ljava/lang/Object;
            5   10     5        i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      x     
      y     

  public boolean isEqual(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
         0: .line 177
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 178
            iconst_1
            ireturn
         2: .line 181
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 182
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 3 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* x */
            iload 3 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* y */
            iload 3 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokeinterface org.hibernate.type.Type.isEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 6
         5: .line 183
            iconst_0
            ireturn
         6: .line 181
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 3 // int i
         8: .line 186
            iconst_1
            ireturn
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/type/ComponentType;
            0    9     1     x  Ljava/lang/Object;
            0    9     2     y  Ljava/lang/Object;
            3    8     3     i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public boolean isEqual(java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
        start local 3 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 192
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 193
            iconst_1
            ireturn
         2: .line 196
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 197
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 4 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* x */
            iload 4 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* y */
            iload 4 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 3 /* factory */
            invokeinterface org.hibernate.type.Type.isEqual:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Z
            ifne 6
         5: .line 198
            iconst_0
            ireturn
         6: .line 196
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 4 // int i
         8: .line 201
            iconst_1
            ireturn
        end local 3 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/hibernate/type/ComponentType;
            0    9     1        x  Ljava/lang/Object;
            0    9     2        y  Ljava/lang/Object;
            0    9     3  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            3    8     4        i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      x        final
      y        final
      factory  final

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
         0: .line 206
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 207
            iconst_0
            ireturn
         2: .line 209
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 210
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 3 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* x */
            iload 3 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* y */
            iload 3 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokeinterface org.hibernate.type.Type.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 4 /* propertyCompare */
        start local 4 // int propertyCompare
         5: .line 211
            iload 4 /* propertyCompare */
            ifeq 7
         6: .line 212
            iload 4 /* propertyCompare */
            ireturn
        end local 4 // int propertyCompare
         7: .line 209
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 3 // int i
         9: .line 215
            iconst_0
            ireturn
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/hibernate/type/ComponentType;
            0   10     1                x  Ljava/lang/Object;
            0   10     2                y  Ljava/lang/Object;
            3    9     3                i  I
            5    7     4  propertyCompare  I
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public boolean isMethodOf(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.reflect.Method method
         0: .line 219
            iconst_0
            ireturn
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/type/ComponentType;
            0    1     1  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      method  

  public int getHashCode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
         0: .line 224
            bipush 17
            istore 2 /* result */
        start local 2 // int result
         1: .line 225
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 226
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            iload 3 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 4 /* y */
        start local 4 // java.lang.Object y
         4: .line 227
            iload 2 /* result */
            bipush 37
            imul
            istore 2 /* result */
         5: .line 228
            aload 4 /* y */
            ifnull 7
         6: .line 229
            iload 2 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 3 /* i */
            aaload
            aload 4 /* y */
            invokeinterface org.hibernate.type.Type.getHashCode:(Ljava/lang/Object;)I
            iadd
            istore 2 /* result */
        end local 4 // java.lang.Object y
         7: .line 225
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 3
        end local 3 // int i
         9: .line 232
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/hibernate/type/ComponentType;
            0   10     1       x  Ljava/lang/Object;
            1   10     2  result  I
            2    9     3       i  I
            4    7     4       y  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      x     final

  public int getHashCode(java.lang.Object, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 237
            bipush 17
            istore 3 /* result */
        start local 3 // int result
         1: .line 238
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 239
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            iload 4 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 5 /* y */
        start local 5 // java.lang.Object y
         4: .line 240
            iload 3 /* result */
            bipush 37
            imul
            istore 3 /* result */
         5: .line 241
            aload 5 /* y */
            ifnull 7
         6: .line 242
            iload 3 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 4 /* i */
            aaload
            aload 5 /* y */
            aload 2 /* factory */
            invokeinterface org.hibernate.type.Type.getHashCode:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)I
            iadd
            istore 3 /* result */
        end local 5 // java.lang.Object y
         7: .line 238
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 3
        end local 4 // int i
         9: .line 245
            iload 3 /* result */
            ireturn
        end local 3 // int result
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/hibernate/type/ComponentType;
            0   10     1        x  Ljava/lang/Object;
            0   10     2  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1   10     3   result  I
            2    9     4        i  I
            4    7     5        y  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      x        final
      factory  final

  public boolean isDirty(java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 250
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 251
            iconst_0
            ireturn
         2: .line 254
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 255
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 4 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* x */
            iload 4 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* y */
            iload 4 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 3 /* session */
            invokeinterface org.hibernate.type.Type.isDirty:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 6
         5: .line 256
            iconst_1
            ireturn
         6: .line 254
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 4 // int i
         8: .line 259
            iconst_0
            ireturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/hibernate/type/ComponentType;
            0    9     1        x  Ljava/lang/Object;
            0    9     2        y  Ljava/lang/Object;
            0    9     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            3    8     4        i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      x        final
      y        final
      session  final

  public boolean isDirty(java.lang.Object, java.lang.Object, boolean[], org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object x
        start local 2 // java.lang.Object y
        start local 3 // boolean[] checkable
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 264
            aload 1 /* x */
            aload 2 /* y */
            if_acmpne 2
         1: .line 265
            iconst_0
            ireturn
         2: .line 268
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* loc */
        start local 5 // int loc
         3: .line 269
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 26
         5: .line 270
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            istore 7 /* len */
        start local 7 // int len
         6: .line 271
            iload 7 /* len */
            iconst_1
            if_icmpgt 14
         7: .line 272
            iload 7 /* len */
            ifeq 8
            aload 3 /* checkable */
            iload 5 /* loc */
            baload
            ifeq 10
         8: .line 273
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* x */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* y */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 4 /* session */
            invokeinterface org.hibernate.type.Type.isDirty:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 10
         9: .line 272
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 8 /* dirty */
        start local 8 // boolean dirty
        12: .line 274
            iload 8 /* dirty */
            ifeq 24
        13: .line 275
            iconst_1
            ireturn
        end local 8 // boolean dirty
        14: .line 279
      StackMap locals:
      StackMap stack:
            iload 7 /* len */
            newarray 4
            astore 8 /* subcheckable */
        start local 8 // boolean[] subcheckable
        15: .line 280
            aload 3 /* checkable */
            iload 5 /* loc */
            aload 8 /* subcheckable */
            iconst_0
            iload 7 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 281
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
        17: .line 282
            aload 0 /* this */
            aload 1 /* x */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
        18: .line 283
            aload 0 /* this */
            aload 2 /* y */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
        19: .line 284
            aload 8 /* subcheckable */
        20: .line 285
            aload 4 /* session */
        21: .line 281
            invokeinterface org.hibernate.type.Type.isDirty:(Ljava/lang/Object;Ljava/lang/Object;[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            istore 9 /* dirty */
        start local 9 // boolean dirty
        22: .line 287
            iload 9 /* dirty */
            ifeq 24
        23: .line 288
            iconst_1
            ireturn
        end local 9 // boolean dirty
        end local 8 // boolean[] subcheckable
        24: .line 291
      StackMap locals:
      StackMap stack:
            iload 5 /* loc */
            iload 7 /* len */
            iadd
            istore 5 /* loc */
        end local 7 // int len
        25: .line 269
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 5
        end local 6 // int i
        27: .line 293
            iconst_0
            ireturn
        end local 5 // int loc
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // boolean[] checkable
        end local 2 // java.lang.Object y
        end local 1 // java.lang.Object x
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/hibernate/type/ComponentType;
            0   28     1             x  Ljava/lang/Object;
            0   28     2             y  Ljava/lang/Object;
            0   28     3     checkable  [Z
            0   28     4       session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            3   28     5           loc  I
            4   27     6             i  I
            6   25     7           len  I
           12   14     8         dirty  Z
           15   24     8  subcheckable  [Z
           22   24     9         dirty  Z
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      x          final
      y          final
      checkable  final
      session    final

  public boolean isModified(java.lang.Object, java.lang.Object, boolean[], org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object old
        start local 2 // java.lang.Object current
        start local 3 // boolean[] checkable
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 302
            aload 1 /* old */
            aload 2 /* current */
            if_acmpne 2
         1: .line 303
            iconst_0
            ireturn
         2: .line 306
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* loc */
        start local 5 // int loc
         3: .line 307
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 12
         5: .line 308
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            istore 7 /* len */
        start local 7 // int len
         6: .line 309
            iload 7 /* len */
            newarray 4
            astore 8 /* subcheckable */
        start local 8 // boolean[] subcheckable
         7: .line 310
            aload 3 /* checkable */
            iload 5 /* loc */
            aload 8 /* subcheckable */
            iconst_0
            iload 7 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 311
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 0 /* this */
            aload 1 /* old */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 0 /* this */
            aload 2 /* current */
            iload 6 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 8 /* subcheckable */
            aload 4 /* session */
            invokeinterface org.hibernate.type.Type.isModified:(Ljava/lang/Object;Ljava/lang/Object;[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)Z
            ifeq 10
         9: .line 312
            iconst_1
            ireturn
        10: .line 314
      StackMap locals: int boolean[]
      StackMap stack:
            iload 5 /* loc */
            iload 7 /* len */
            iadd
            istore 5 /* loc */
        end local 8 // boolean[] subcheckable
        end local 7 // int len
        11: .line 307
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 5
        end local 6 // int i
        13: .line 316
            iconst_0
            ireturn
        end local 5 // int loc
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // boolean[] checkable
        end local 2 // java.lang.Object current
        end local 1 // java.lang.Object old
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/hibernate/type/ComponentType;
            0   14     1           old  Ljava/lang/Object;
            0   14     2       current  Ljava/lang/Object;
            0   14     3     checkable  [Z
            0   14     4       session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            3   14     5           loc  I
            4   13     6             i  I
            6   11     7           len  I
            7   11     8  subcheckable  [Z
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      old        final
      current    final
      checkable  final
      session    final

  public java.lang.Object nullSafeGet(java.sql.ResultSet, java.lang.String[], org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.ResultSet rs
        start local 2 // java.lang.String[] names
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
         0: .line 323
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* rs */
            aload 2 /* names */
            aload 3 /* session */
            aload 4 /* owner */
            invokevirtual org.hibernate.type.ComponentType.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* session */
            aload 4 /* owner */
            invokevirtual org.hibernate.type.ComponentType.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.String[] names
        end local 1 // java.sql.ResultSet rs
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/type/ComponentType;
            0    1     1       rs  Ljava/sql/ResultSet;
            0    1     2    names  [Ljava/lang/String;
            0    1     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    1     4    owner  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      rs       
      names    
      session  
      owner    

  public void nullSafeSet(java.sql.PreparedStatement, java.lang.Object, int, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.PreparedStatement st
        start local 2 // java.lang.Object value
        start local 3 // int begin
        start local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 330
            aload 0 /* this */
            aload 2 /* value */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.nullSafeGetValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 5 /* subvalues */
        start local 5 // java.lang.Object[] subvalues
         1: .line 332
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 6
         3: .line 333
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 1 /* st */
            aload 5 /* subvalues */
            iload 6 /* i */
            aaload
            iload 3 /* begin */
            aload 4 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         4: .line 334
            iload 3 /* begin */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 4 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            iadd
            istore 3 /* begin */
         5: .line 332
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 3
        end local 6 // int i
         7: .line 336
            return
        end local 5 // java.lang.Object[] subvalues
        end local 4 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 3 // int begin
        end local 2 // java.lang.Object value
        end local 1 // java.sql.PreparedStatement st
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hibernate/type/ComponentType;
            0    8     1         st  Ljava/sql/PreparedStatement;
            0    8     2      value  Ljava/lang/Object;
            0    8     3      begin  I
            0    8     4    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1    8     5  subvalues  [Ljava/lang/Object;
            2    7     6          i  I
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      st       
      value    
      begin    
      session  

  public void nullSafeSet(java.sql.PreparedStatement, java.lang.Object, int, boolean[], org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.PreparedStatement st
        start local 2 // java.lang.Object value
        start local 3 // int begin
        start local 4 // boolean[] settable
        start local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 347
            aload 0 /* this */
            aload 2 /* value */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.nullSafeGetValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 6 /* subvalues */
        start local 6 // java.lang.Object[] subvalues
         1: .line 349
            iconst_0
            istore 7 /* loc */
        start local 7 // int loc
         2: .line 350
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         3: goto 17
         4: .line 351
      StackMap locals: java.lang.Object[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 8 /* i */
            aaload
            aload 5 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            istore 9 /* len */
        start local 9 // int len
         5: .line 353
            iload 9 /* len */
            ifeq 15
         6: .line 356
            iload 9 /* len */
            iconst_1
            if_icmpne 11
         7: .line 357
            aload 4 /* settable */
            iload 7 /* loc */
            baload
            ifeq 15
         8: .line 358
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 8 /* i */
            aaload
            aload 1 /* st */
            aload 6 /* subvalues */
            iload 8 /* i */
            aaload
            iload 3 /* begin */
            aload 5 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
         9: .line 359
            iinc 3 /* begin */ 1
        10: .line 361
            goto 15
        11: .line 363
      StackMap locals: int
      StackMap stack:
            iload 9 /* len */
            newarray 4
            astore 10 /* subsettable */
        start local 10 // boolean[] subsettable
        12: .line 364
            aload 4 /* settable */
            iload 7 /* loc */
            aload 10 /* subsettable */
            iconst_0
            iload 9 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 365
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 8 /* i */
            aaload
            aload 1 /* st */
            aload 6 /* subvalues */
            iload 8 /* i */
            aaload
            iload 3 /* begin */
            aload 10 /* subsettable */
            aload 5 /* session */
            invokeinterface org.hibernate.type.Type.nullSafeSet:(Ljava/sql/PreparedStatement;Ljava/lang/Object;I[ZLorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
        14: .line 366
            iload 3 /* begin */
            aload 10 /* subsettable */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.countTrue:([Z)I
            iadd
            istore 3 /* begin */
        end local 10 // boolean[] subsettable
        15: .line 368
      StackMap locals:
      StackMap stack:
            iload 7 /* loc */
            iload 9 /* len */
            iadd
            istore 7 /* loc */
        end local 9 // int len
        16: .line 350
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 4
        end local 8 // int i
        18: .line 370
            return
        end local 7 // int loc
        end local 6 // java.lang.Object[] subvalues
        end local 5 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 4 // boolean[] settable
        end local 3 // int begin
        end local 2 // java.lang.Object value
        end local 1 // java.sql.PreparedStatement st
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/hibernate/type/ComponentType;
            0   19     1           st  Ljava/sql/PreparedStatement;
            0   19     2        value  Ljava/lang/Object;
            0   19     3        begin  I
            0   19     4     settable  [Z
            0   19     5      session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1   19     6    subvalues  [Ljava/lang/Object;
            2   19     7          loc  I
            3   18     8            i  I
            5   16     9          len  I
           12   15    10  subsettable  [Z
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
          Name  Flags
      st        
      value     
      begin     
      settable  
      session   

  private java.lang.Object[] nullSafeGetValues(java.lang.Object, org.hibernate.EntityMode);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.EntityMode entityMode
         0: .line 373
            aload 1 /* value */
            ifnonnull 2
         1: .line 374
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            areturn
         2: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            aload 2 /* entityMode */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.EntityMode entityMode
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/type/ComponentType;
            0    3     1       value  Ljava/lang/Object;
            0    3     2  entityMode  Lorg/hibernate/EntityMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      value       
      entityMode  

  public java.lang.Object nullSafeGet(java.sql.ResultSet, java.lang.String, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/sql/ResultSet;Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.ResultSet rs
        start local 2 // java.lang.String name
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
         0: .line 385
            aload 0 /* this */
            aload 1 /* rs */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* name */
            aastore
            aload 3 /* session */
            aload 4 /* owner */
            invokevirtual org.hibernate.type.ComponentType.nullSafeGet:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.String name
        end local 1 // java.sql.ResultSet rs
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/type/ComponentType;
            0    1     1       rs  Ljava/sql/ResultSet;
            0    1     2     name  Ljava/lang/String;
            0    1     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    1     4    owner  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      rs       
      name     
      session  
      owner    

  public java.lang.Object getPropertyValue(java.lang.Object, int, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // int i
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 391
            aload 0 /* this */
            aload 1 /* component */
            iload 2 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // int i
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/type/ComponentType;
            0    1     1  component  Ljava/lang/Object;
            0    1     2          i  I
            0    1     3    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      component  
      i          
      session    

  public java.lang.Object getPropertyValue(java.lang.Object, int, org.hibernate.EntityMode);
    descriptor: (Ljava/lang/Object;ILorg/hibernate/EntityMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // int i
        start local 3 // org.hibernate.EntityMode entityMode
         0: .line 396
            aload 0 /* this */
            aload 1 /* component */
            iload 2 /* i */
            invokevirtual org.hibernate.type.ComponentType.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.EntityMode entityMode
        end local 2 // int i
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/type/ComponentType;
            0    1     1   component  Ljava/lang/Object;
            0    1     2           i  I
            0    1     3  entityMode  Lorg/hibernate/EntityMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      component   
      i           
      entityMode  

  public java.lang.Object getPropertyValue(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // int i
         0: .line 401
            aload 1 /* component */
            ifnonnull 2
         1: .line 402
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            astore 1 /* component */
         2: .line 404
      StackMap locals:
      StackMap stack:
            aload 1 /* component */
            instanceof java.lang.Object[]
            ifeq 4
         3: .line 409
            aload 1 /* component */
            checkcast java.lang.Object[]
            iload 2 /* i */
            aaload
            areturn
         4: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            aload 1 /* component */
            iload 2 /* i */
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.getPropertyValue:(Ljava/lang/Object;I)Ljava/lang/Object;
            areturn
        end local 2 // int i
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/hibernate/type/ComponentType;
            0    5     1  component  Ljava/lang/Object;
            0    5     2          i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      component  
      i          

  public java.lang.Object[] getPropertyValues(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 419
            aload 0 /* this */
            aload 1 /* component */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/type/ComponentType;
            0    1     1  component  Ljava/lang/Object;
            0    1     2    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      component  
      session    

  public java.lang.Object[] getPropertyValues(java.lang.Object, org.hibernate.EntityMode);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // org.hibernate.EntityMode entityMode
         0: .line 425
            aload 1 /* component */
            ifnonnull 2
         1: .line 426
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            astore 1 /* component */
         2: .line 428
      StackMap locals:
      StackMap stack:
            aload 1 /* component */
            instanceof java.lang.Object[]
            ifeq 4
         3: .line 433
            aload 1 /* component */
            checkcast java.lang.Object[]
            areturn
         4: .line 436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            aload 1 /* component */
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.getPropertyValues:(Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 2 // org.hibernate.EntityMode entityMode
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/hibernate/type/ComponentType;
            0    5     1   component  Ljava/lang/Object;
            0    5     2  entityMode  Lorg/hibernate/EntityMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      component   
      entityMode  

  public void setPropertyValues(java.lang.Object, java.lang.Object[], org.hibernate.EntityMode);
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // java.lang.Object[] values
        start local 3 // org.hibernate.EntityMode entityMode
         0: .line 443
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            aload 1 /* component */
            aload 2 /* values */
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;)V
         1: .line 444
            return
        end local 3 // org.hibernate.EntityMode entityMode
        end local 2 // java.lang.Object[] values
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/type/ComponentType;
            0    2     1   component  Ljava/lang/Object;
            0    2     2      values  [Ljava/lang/Object;
            0    2     3  entityMode  Lorg/hibernate/EntityMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      component   
      values      
      entityMode  

  public org.hibernate.type.Type[] getSubtypes();
    descriptor: ()[Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 448
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public org.hibernate.tuple.ValueGeneration[] getPropertyValueGenerationStrategies();
    descriptor: ()[Lorg/hibernate/tuple/ValueGeneration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 452
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyValueGenerationStrategies:[Lorg/hibernate/tuple/ValueGeneration;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 457
            new java.lang.StringBuilder
            dup
            ldc "component"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public java.lang.String toLoggableString(java.lang.Object, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 463
            aload 1 /* value */
            ifnonnull 2
         1: .line 464
            ldc "null"
            areturn
         2: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            ifnonnull 4
         3: .line 468
            new java.lang.ClassCastException
            dup
            aload 1 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 470
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.Map result
         5: .line 471
            aload 0 /* this */
            aload 1 /* value */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         6: .line 472
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 13
         8: .line 473
      StackMap locals: java.util.Map java.lang.Object[] int
      StackMap stack:
            aload 4 /* values */
            iload 5 /* i */
            aaload
            getstatic org.hibernate.bytecode.enhance.spi.LazyPropertyInitializer.UNFETCHED_PROPERTY:Ljava/io/Serializable;
            if_acmpne 11
         9: .line 474
            aload 3 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            ldc "<uninitialized>"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 475
            goto 12
        11: .line 477
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
            iload 5 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 5 /* i */
            aaload
            aload 4 /* values */
            iload 5 /* i */
            aaload
            aload 2 /* factory */
            invokeinterface org.hibernate.type.Type.toLoggableString:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 472
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            arraylength
            if_icmplt 8
        end local 5 // int i
        14: .line 480
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.type.ComponentType.getName:()Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.unqualify:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* result */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.Object[] values
        end local 3 // java.util.Map result
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/hibernate/type/ComponentType;
            0   15     1    value  Ljava/lang/Object;
            0   15     2  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            5   15     3   result  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            6   15     4   values  [Ljava/lang/Object;
            7   14     5        i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      value    
      factory  

  public java.lang.String[] getPropertyNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 485
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNames:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public java.lang.Object deepCopy(java.lang.Object, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object component
        start local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 491
            aload 1 /* component */
            ifnonnull 2
         1: .line 492
            aconst_null
            areturn
         2: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* component */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 3 /* values */
        start local 3 // java.lang.Object[] values
         3: .line 496
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 497
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* values */
            iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 4 /* i */
            aaload
            aload 3 /* values */
            iload 4 /* i */
            aaload
            aload 2 /* factory */
            invokeinterface org.hibernate.type.Type.deepCopy:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/Object;
            aastore
         6: .line 496
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 5
        end local 4 // int i
         8: .line 500
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Lorg/hibernate/EntityMode;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         9: .line 501
            aload 0 /* this */
            aload 4 /* result */
            aload 3 /* values */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
        10: .line 505
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.hasParentProperty:()Z
            ifeq 12
        11: .line 506
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            aload 4 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            aload 1 /* component */
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.getParent:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 2 /* factory */
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.setParent:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        12: .line 509
      StackMap locals: org.hibernate.type.ComponentType java.lang.Object org.hibernate.engine.spi.SessionFactoryImplementor java.lang.Object[] java.lang.Object
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // java.lang.Object[] values
        end local 2 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 1 // java.lang.Object component
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/hibernate/type/ComponentType;
            0   13     1  component  Ljava/lang/Object;
            0   13     2    factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            3   13     3     values  [Ljava/lang/Object;
            4    8     4          i  I
            9   13     4     result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      component  
      factory    

  public java.lang.Object replace(java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.util.Map);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object original
        start local 2 // java.lang.Object target
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
        start local 5 // java.util.Map copyCache
         0: .line 521
            aload 1 /* original */
            ifnonnull 2
         1: .line 522
            aconst_null
            areturn
         2: .line 526
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            ifnonnull 4
         3: .line 527
            aload 0 /* this */
            aload 4 /* owner */
            aload 3 /* session */
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            goto 5
         4: .line 528
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
         5: .line 526
      StackMap locals:
      StackMap stack: java.lang.Object
            astore 6 /* result */
        start local 6 // java.lang.Object result
         6: .line 531
            aload 0 /* this */
            aload 1 /* original */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
         7: .line 532
            aload 0 /* this */
            aload 6 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
         8: .line 533
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
         9: .line 534
            aload 3 /* session */
        10: .line 535
            aload 4 /* owner */
        11: .line 536
            aload 5 /* copyCache */
        12: .line 530
            invokestatic org.hibernate.type.TypeHelper.replace:([Ljava/lang/Object;[Ljava/lang/Object;[Lorg/hibernate/type/Type;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/util/Map;)[Ljava/lang/Object;
            astore 7 /* values */
        start local 7 // java.lang.Object[] values
        13: .line 539
            aload 0 /* this */
            aload 6 /* result */
            aload 7 /* values */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
        14: .line 540
            aload 6 /* result */
            areturn
        end local 7 // java.lang.Object[] values
        end local 6 // java.lang.Object result
        end local 5 // java.util.Map copyCache
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.Object target
        end local 1 // java.lang.Object original
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/hibernate/type/ComponentType;
            0   15     1   original  Ljava/lang/Object;
            0   15     2     target  Ljava/lang/Object;
            0   15     3    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   15     4      owner  Ljava/lang/Object;
            0   15     5  copyCache  Ljava/util/Map;
            6   15     6     result  Ljava/lang/Object;
           13   15     7     values  [Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
           Name  Flags
      original   
      target     
      session    
      owner      
      copyCache  

  public java.lang.Object replace(java.lang.Object, java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object, java.util.Map, org.hibernate.type.ForeignKeyDirection);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/type/ForeignKeyDirection;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=7
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object original
        start local 2 // java.lang.Object target
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
        start local 5 // java.util.Map copyCache
        start local 6 // org.hibernate.type.ForeignKeyDirection foreignKeyDirection
         0: .line 553
            aload 1 /* original */
            ifnonnull 2
         1: .line 554
            aconst_null
            areturn
         2: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            ifnonnull 4
         3: .line 559
            aload 0 /* this */
            aload 4 /* owner */
            aload 3 /* session */
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            goto 5
         4: .line 560
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
         5: .line 558
      StackMap locals:
      StackMap stack: java.lang.Object
            astore 7 /* result */
        start local 7 // java.lang.Object result
         6: .line 563
            aload 0 /* this */
            aload 1 /* original */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
         7: .line 564
            aload 0 /* this */
            aload 7 /* result */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
         8: .line 565
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
         9: .line 566
            aload 3 /* session */
        10: .line 567
            aload 4 /* owner */
        11: .line 568
            aload 5 /* copyCache */
        12: .line 569
            aload 6 /* foreignKeyDirection */
        13: .line 562
            invokestatic org.hibernate.type.TypeHelper.replace:([Ljava/lang/Object;[Ljava/lang/Object;[Lorg/hibernate/type/Type;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/type/ForeignKeyDirection;)[Ljava/lang/Object;
            astore 8 /* values */
        start local 8 // java.lang.Object[] values
        14: .line 572
            aload 0 /* this */
            aload 7 /* result */
            aload 8 /* values */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
        15: .line 573
            aload 7 /* result */
            areturn
        end local 8 // java.lang.Object[] values
        end local 7 // java.lang.Object result
        end local 6 // org.hibernate.type.ForeignKeyDirection foreignKeyDirection
        end local 5 // java.util.Map copyCache
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.Object target
        end local 1 // java.lang.Object original
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0                 this  Lorg/hibernate/type/ComponentType;
            0   16     1             original  Ljava/lang/Object;
            0   16     2               target  Ljava/lang/Object;
            0   16     3              session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   16     4                owner  Ljava/lang/Object;
            0   16     5            copyCache  Ljava/util/Map;
            0   16     6  foreignKeyDirection  Lorg/hibernate/type/ForeignKeyDirection;
            6   16     7               result  Ljava/lang/Object;
           14   16     8               values  [Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                     Name  Flags
      original             
      target               
      session              
      owner                
      copyCache            
      foreignKeyDirection  

  public java.lang.Object instantiate(org.hibernate.EntityMode);
    descriptor: (Lorg/hibernate/EntityMode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // org.hibernate.EntityMode entityMode
         0: .line 580
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.instantiate:()Ljava/lang/Object;
            areturn
        end local 1 // org.hibernate.EntityMode entityMode
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/type/ComponentType;
            0    1     1  entityMode  Lorg/hibernate/EntityMode;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      entityMode  

  public java.lang.Object instantiate(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object parent
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 586
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Lorg/hibernate/EntityMode;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         1: .line 588
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.hasParentProperty:()Z
            ifeq 7
            aload 1 /* parent */
            ifnull 7
         2: .line 589
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.componentTuplizer:Lorg/hibernate/tuple/component/ComponentTuplizer;
         3: .line 590
            aload 3 /* result */
         4: .line 591
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getPersistenceContext:()Lorg/hibernate/engine/spi/PersistenceContext;
            aload 1 /* parent */
            invokeinterface org.hibernate.engine.spi.PersistenceContext.proxyFor:(Ljava/lang/Object;)Ljava/lang/Object;
         5: .line 592
            aload 2 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 589
            invokeinterface org.hibernate.tuple.component.ComponentTuplizer.setParent:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
         7: .line 596
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object parent
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/hibernate/type/ComponentType;
            0    8     1   parent  Ljava/lang/Object;
            0    8     2  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1    8     3   result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      parent   
      session  

  public org.hibernate.engine.spi.CascadeStyle getCascadeStyle(int);
    descriptor: (I)Lorg/hibernate/engine/spi/CascadeStyle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // int i
         0: .line 601
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.cascade:[Lorg/hibernate/engine/spi/CascadeStyle;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public boolean isMutable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 606
            iconst_1
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public java.io.Serializable disassemble(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 3 // java.lang.Object owner
         0: .line 613
            aload 1 /* value */
            ifnonnull 2
         1: .line 614
            aconst_null
            areturn
         2: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         3: .line 618
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 619
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 4 /* values */
            iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 5 /* i */
            aaload
            aload 4 /* values */
            iload 5 /* i */
            aaload
            aload 2 /* session */
            aload 3 /* owner */
            invokeinterface org.hibernate.type.Type.disassemble:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/io/Serializable;
            aastore
         6: .line 618
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            arraylength
            if_icmplt 5
        end local 5 // int i
         8: .line 621
            aload 4 /* values */
            areturn
        end local 4 // java.lang.Object[] values
        end local 3 // java.lang.Object owner
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/hibernate/type/ComponentType;
            0    9     1    value  Ljava/lang/Object;
            0    9     2  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    9     3    owner  Ljava/lang/Object;
            3    9     4   values  [Ljava/lang/Object;
            4    8     5        i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      value    
      session  
      owner    

  public java.lang.Object assemble(java.io.Serializable, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.io.Serializable object
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 3 // java.lang.Object owner
         0: .line 629
            aload 1 /* object */
            ifnonnull 2
         1: .line 630
            aconst_null
            areturn
         2: .line 633
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            checkcast java.lang.Object[]
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         3: .line 634
            aload 4 /* values */
            arraylength
            anewarray java.lang.Object
            astore 5 /* assembled */
        start local 5 // java.lang.Object[] assembled
         4: .line 635
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 8
         6: .line 636
      StackMap locals: java.lang.Object[] java.lang.Object[] int
      StackMap stack:
            aload 5 /* assembled */
            iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 4 /* values */
            iload 6 /* i */
            aaload
            checkcast java.io.Serializable
            aload 2 /* session */
            aload 3 /* owner */
            invokeinterface org.hibernate.type.Type.assemble:(Ljava/io/Serializable;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         7: .line 635
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            arraylength
            if_icmplt 6
        end local 6 // int i
         9: .line 638
            aload 0 /* this */
            aload 3 /* owner */
            aload 2 /* session */
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 6 /* result */
        start local 6 // java.lang.Object result
        10: .line 639
            aload 0 /* this */
            aload 6 /* result */
            aload 5 /* assembled */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
        11: .line 640
            aload 6 /* result */
            areturn
        end local 6 // java.lang.Object result
        end local 5 // java.lang.Object[] assembled
        end local 4 // java.lang.Object[] values
        end local 3 // java.lang.Object owner
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.io.Serializable object
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/hibernate/type/ComponentType;
            0   12     1     object  Ljava/io/Serializable;
            0   12     2    session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   12     3      owner  Ljava/lang/Object;
            3   12     4     values  [Ljava/lang/Object;
            4   12     5  assembled  [Ljava/lang/Object;
            5    9     6          i  I
           10   12     6     result  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      object   
      session  
      owner    

  public org.hibernate.FetchMode getFetchMode(int);
    descriptor: (I)Lorg/hibernate/FetchMode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // int i
         0: .line 646
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.joinedFetch:[Lorg/hibernate/FetchMode;
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public java.lang.Object hydrate(java.sql.ResultSet, java.lang.String[], org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.ResultSet rs
        start local 2 // java.lang.String[] names
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 4 // java.lang.Object owner
         0: .line 657
            iconst_0
            istore 5 /* begin */
        start local 5 // int begin
         1: .line 658
            iconst_0
            istore 6 /* notNull */
        start local 6 // boolean notNull
         2: .line 659
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            astore 7 /* values */
        start local 7 // java.lang.Object[] values
         3: .line 660
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         4: goto 15
         5: .line 661
      StackMap locals: org.hibernate.type.ComponentType java.sql.ResultSet java.lang.String[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object int int java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 8 /* i */
            aaload
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            istore 9 /* length */
        start local 9 // int length
         6: .line 662
            aload 2 /* names */
            iload 5 /* begin */
            iload 9 /* length */
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.slice:([Ljava/lang/String;II)[Ljava/lang/String;
            astore 10 /* range */
        start local 10 // java.lang.String[] range
         7: .line 663
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 8 /* i */
            aaload
            aload 1 /* rs */
            aload 10 /* range */
            aload 3 /* session */
            aload 4 /* owner */
            invokeinterface org.hibernate.type.Type.hydrate:(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* val */
        start local 11 // java.lang.Object val
         8: .line 664
            aload 11 /* val */
            ifnonnull 11
         9: .line 665
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.isKey:Z
            ifeq 12
        10: .line 666
            aconst_null
            areturn
        11: .line 670
      StackMap locals: int java.lang.String[] java.lang.Object
      StackMap stack:
            iconst_1
            istore 6 /* notNull */
        12: .line 672
      StackMap locals:
      StackMap stack:
            aload 7 /* values */
            iload 8 /* i */
            aload 11 /* val */
            aastore
        13: .line 673
            iload 5 /* begin */
            iload 9 /* length */
            iadd
            istore 5 /* begin */
        end local 11 // java.lang.Object val
        end local 10 // java.lang.String[] range
        end local 9 // int length
        14: .line 660
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 5
        end local 8 // int i
        16: .line 676
            iload 6 /* notNull */
            ifeq 17
            aload 7 /* values */
            goto 18
      StackMap locals:
      StackMap stack:
        17: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object[]
        18: areturn
        end local 7 // java.lang.Object[] values
        end local 6 // boolean notNull
        end local 5 // int begin
        end local 4 // java.lang.Object owner
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.String[] names
        end local 1 // java.sql.ResultSet rs
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/hibernate/type/ComponentType;
            0   19     1       rs  Ljava/sql/ResultSet;
            0   19     2    names  [Ljava/lang/String;
            0   19     3  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   19     4    owner  Ljava/lang/Object;
            1   19     5    begin  I
            2   19     6  notNull  Z
            3   19     7   values  [Ljava/lang/Object;
            4   16     8        i  I
            6   14     9   length  I
            7   14    10    range  [Ljava/lang/String;
            8   14    11      val  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException, java.sql.SQLException
    MethodParameters:
         Name  Flags
      rs       final
      names    final
      session  final
      owner    final

  public java.lang.Object resolve(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 3 // java.lang.Object owner
         0: .line 683
            aload 1 /* value */
            ifnull 11
         1: .line 684
            aload 0 /* this */
            aload 3 /* owner */
            aload 2 /* session */
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         2: .line 685
            aload 1 /* value */
            checkcast java.lang.Object[]
            astore 5 /* values */
        start local 5 // java.lang.Object[] values
         3: .line 686
            aload 5 /* values */
            arraylength
            anewarray java.lang.Object
            astore 6 /* resolvedValues */
        start local 6 // java.lang.Object[] resolvedValues
         4: .line 687
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 8
         6: .line 688
      StackMap locals: org.hibernate.type.ComponentType java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object java.lang.Object java.lang.Object[] java.lang.Object[] int
      StackMap stack:
            aload 6 /* resolvedValues */
            iload 7 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 7 /* i */
            aaload
            aload 5 /* values */
            iload 7 /* i */
            aaload
            aload 2 /* session */
            aload 3 /* owner */
            invokeinterface org.hibernate.type.Type.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         7: .line 687
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 7 /* i */
            aload 5 /* values */
            arraylength
            if_icmplt 6
        end local 7 // int i
         9: .line 690
            aload 0 /* this */
            aload 4 /* result */
            aload 6 /* resolvedValues */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.entityMode:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.setPropertyValues:(Ljava/lang/Object;[Ljava/lang/Object;Lorg/hibernate/EntityMode;)V
        10: .line 691
            aload 4 /* result */
            areturn
        end local 6 // java.lang.Object[] resolvedValues
        end local 5 // java.lang.Object[] values
        end local 4 // java.lang.Object result
        11: .line 693
      StackMap locals: org.hibernate.type.ComponentType java.lang.Object org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hibernate.type.ComponentType.isCreateEmptyCompositesEnabled:()Z
            ifeq 13
        12: .line 694
            aload 0 /* this */
            aload 3 /* owner */
            aload 2 /* session */
            invokevirtual org.hibernate.type.ComponentType.instantiate:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            areturn
        13: .line 697
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object owner
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lorg/hibernate/type/ComponentType;
            0   14     1           value  Ljava/lang/Object;
            0   14     2         session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0   14     3           owner  Ljava/lang/Object;
            2   11     4          result  Ljava/lang/Object;
            3   11     5          values  [Ljava/lang/Object;
            4   11     6  resolvedValues  [Ljava/lang/Object;
            5    9     7               i  I
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      value    
      session  
      owner    

  public java.lang.Object semiResolve(java.lang.Object, org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        start local 3 // java.lang.Object owner
         0: .line 706
            aload 0 /* this */
            aload 1 /* value */
            aload 2 /* session */
            aload 3 /* owner */
            invokevirtual org.hibernate.type.ComponentType.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object owner
        end local 2 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/type/ComponentType;
            0    1     1    value  Ljava/lang/Object;
            0    1     2  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            0    1     3    owner  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      value    
      session  
      owner    

  public boolean[] getPropertyNullability();
    descriptor: ()[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 711
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyNullability:[Z
            areturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public boolean[] toColumnNullness(java.lang.Object, org.hibernate.engine.spi.Mapping);
    descriptor: (Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.Object value
        start local 2 // org.hibernate.engine.spi.Mapping mapping
         0: .line 716
            aload 0 /* this */
            aload 2 /* mapping */
            invokevirtual org.hibernate.type.ComponentType.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            newarray 4
            astore 3 /* result */
        start local 3 // boolean[] result
         1: .line 717
            aload 1 /* value */
            ifnonnull 3
         2: .line 718
            aload 3 /* result */
            areturn
         3: .line 720
      StackMap locals: boolean[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            getstatic org.hibernate.EntityMode.POJO:Lorg/hibernate/EntityMode;
            invokevirtual org.hibernate.type.ComponentType.getPropertyValues:(Ljava/lang/Object;Lorg/hibernate/EntityMode;)[Ljava/lang/Object;
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         4: .line 721
            iconst_0
            istore 5 /* loc */
        start local 5 // int loc
         5: .line 722
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 11
         7: .line 723
      StackMap locals: java.lang.Object[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 6 /* i */
            aaload
            aload 4 /* values */
            iload 6 /* i */
            aaload
            aload 2 /* mapping */
            invokeinterface org.hibernate.type.Type.toColumnNullness:(Ljava/lang/Object;Lorg/hibernate/engine/spi/Mapping;)[Z
            astore 7 /* propertyNullness */
        start local 7 // boolean[] propertyNullness
         8: .line 724
            aload 7 /* propertyNullness */
            iconst_0
            aload 3 /* result */
            iload 5 /* loc */
            aload 7 /* propertyNullness */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 725
            iload 5 /* loc */
            aload 7 /* propertyNullness */
            arraylength
            iadd
            istore 5 /* loc */
        end local 7 // boolean[] propertyNullness
        10: .line 722
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            arraylength
            if_icmplt 7
        end local 6 // int i
        12: .line 727
            aload 3 /* result */
            areturn
        end local 5 // int loc
        end local 4 // java.lang.Object[] values
        end local 3 // boolean[] result
        end local 2 // org.hibernate.engine.spi.Mapping mapping
        end local 1 // java.lang.Object value
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/hibernate/type/ComponentType;
            0   13     1             value  Ljava/lang/Object;
            0   13     2           mapping  Lorg/hibernate/engine/spi/Mapping;
            1   13     3            result  [Z
            4   13     4            values  [Ljava/lang/Object;
            5   13     5               loc  I
            6   12     6                 i  I
            8   10     7  propertyNullness  [Z
    MethodParameters:
         Name  Flags
      value    
      mapping  

  public boolean isEmbedded();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 732
            iconst_0
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  public int getPropertyIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.lang.String name
         0: .line 737
            aload 0 /* this */
            invokevirtual org.hibernate.type.ComponentType.getPropertyNames:()[Ljava/lang/String;
            astore 2 /* names */
        start local 2 // java.lang.String[] names
         1: .line 738
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: aload 2 /* names */
            arraylength
            istore 4 /* max */
        start local 4 // int max
         3: goto 7
         4: .line 739
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 2 /* names */
            iload 3 /* i */
            aaload
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 740
            iload 3 /* i */
            ireturn
         6: .line 738
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 4 /* max */
            if_icmplt 4
        end local 4 // int max
        end local 3 // int i
         8: .line 743
            new org.hibernate.PropertyNotFoundException
            dup
         9: .line 744
            new java.lang.StringBuilder
            dup
            ldc "Unable to locate property named "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " on "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.hibernate.type.ComponentType.getReturnedClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 743
            invokespecial org.hibernate.PropertyNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String[] names
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/hibernate/type/ComponentType;
            0   11     1   name  Ljava/lang/String;
            1   11     2  names  [Ljava/lang/String;
            2    8     3      i  I
            3    8     4    max  I
    MethodParameters:
      Name  Flags
      name  

  public boolean canDoExtraction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 752
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.canDoExtraction:Ljava/lang/Boolean;
            ifnonnull 2
         1: .line 753
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.type.ComponentType.determineIfProcedureParamExtractionCanBePerformed:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.hibernate.type.ComponentType.canDoExtraction:Ljava/lang/Boolean;
         2: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.canDoExtraction:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/type/ComponentType;

  private boolean determineIfProcedureParamExtractionCanBePerformed();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 759
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 7
      StackMap locals: org.hibernate.type.ComponentType top int int org.hibernate.type.Type[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* propertyType */
        start local 1 // org.hibernate.type.Type propertyType
         2: .line 760
            ldc Lorg/hibernate/type/ProcedureParameterExtractionAware;
            aload 1 /* propertyType */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 761
            iconst_0
            ireturn
         4: .line 763
      StackMap locals: org.hibernate.type.ComponentType org.hibernate.type.Type int int org.hibernate.type.Type[]
      StackMap stack:
            aload 1 /* propertyType */
            checkcast org.hibernate.type.ProcedureParameterExtractionAware
            invokeinterface org.hibernate.type.ProcedureParameterExtractionAware.canDoExtraction:()Z
            ifne 6
         5: .line 764
            iconst_0
            ireturn
        end local 1 // org.hibernate.type.Type propertyType
         6: .line 759
      StackMap locals: org.hibernate.type.ComponentType top int int org.hibernate.type.Type[]
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         7: iload 2
            iload 3
            if_icmplt 1
         8: .line 767
            iconst_1
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/hibernate/type/ComponentType;
            2    6     1  propertyType  Lorg/hibernate/type/Type;

  public java.lang.Object extract(java.sql.CallableStatement, int, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/CallableStatement;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.CallableStatement statement
        start local 2 // int startIndex
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 772
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         1: .line 774
            iload 2 /* startIndex */
            istore 5 /* currentIndex */
        start local 5 // int currentIndex
         2: .line 775
            iconst_0
            istore 6 /* notNull */
        start local 6 // boolean notNull
         3: .line 776
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         4: goto 18
         5: .line 778
      StackMap locals: org.hibernate.type.ComponentType java.sql.CallableStatement int org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 7 /* i */
            aaload
            astore 8 /* propertyType */
        start local 8 // org.hibernate.type.Type propertyType
         6: .line 779
            aload 8 /* propertyType */
            checkcast org.hibernate.type.ProcedureParameterExtractionAware
         7: .line 780
            aload 1 /* statement */
         8: .line 781
            iload 5 /* currentIndex */
         9: .line 782
            aload 3 /* session */
        10: .line 779
            invokeinterface org.hibernate.type.ProcedureParameterExtractionAware.extract:(Ljava/sql/CallableStatement;ILorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 9 /* value */
        start local 9 // java.lang.Object value
        11: .line 784
            aload 9 /* value */
            ifnonnull 14
        12: .line 785
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.isKey:Z
            ifeq 15
        13: .line 786
            aconst_null
            areturn
        14: .line 790
      StackMap locals: org.hibernate.type.Type java.lang.Object
      StackMap stack:
            iconst_1
            istore 6 /* notNull */
        15: .line 792
      StackMap locals:
      StackMap stack:
            aload 4 /* values */
            iload 7 /* i */
            aload 9 /* value */
            aastore
        16: .line 793
            iload 5 /* currentIndex */
            aload 8 /* propertyType */
            aload 3 /* session */
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            iadd
            istore 5 /* currentIndex */
        end local 9 // java.lang.Object value
        end local 8 // org.hibernate.type.Type propertyType
        17: .line 776
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            if_icmplt 5
        end local 7 // int i
        19: .line 796
            iload 6 /* notNull */
            ifne 21
        20: .line 797
            aconst_null
            astore 4 /* values */
        21: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* values */
            aload 3 /* session */
            aconst_null
            invokevirtual org.hibernate.type.ComponentType.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // boolean notNull
        end local 5 // int currentIndex
        end local 4 // java.lang.Object[] values
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // int startIndex
        end local 1 // java.sql.CallableStatement statement
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lorg/hibernate/type/ComponentType;
            0   22     1     statement  Ljava/sql/CallableStatement;
            0   22     2    startIndex  I
            0   22     3       session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1   22     4        values  [Ljava/lang/Object;
            2   22     5  currentIndex  I
            3   22     6       notNull  Z
            4   19     7             i  I
            6   17     8  propertyType  Lorg/hibernate/type/Type;
           11   17     9         value  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      statement   
      startIndex  
      session     

  public java.lang.Object extract(java.sql.CallableStatement, java.lang.String[], org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/sql/CallableStatement;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=4
        start local 0 // org.hibernate.type.ComponentType this
        start local 1 // java.sql.CallableStatement statement
        start local 2 // java.lang.String[] paramNames
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 808
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertySpan:I
            anewarray java.lang.Object
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         1: .line 810
            iconst_0
            istore 5 /* indx */
        start local 5 // int indx
         2: .line 811
            iconst_0
            istore 6 /* notNull */
        start local 6 // boolean notNull
         3: .line 812
            aload 2 /* paramNames */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 13
      StackMap locals: org.hibernate.type.ComponentType java.sql.CallableStatement java.lang.String[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int top int int java.lang.String[]
      StackMap stack:
         4: aload 10
            iload 8
            aaload
            astore 7 /* paramName */
        start local 7 // java.lang.String paramName
         5: .line 814
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.propertyTypes:[Lorg/hibernate/type/Type;
            iload 5 /* indx */
            aaload
            checkcast org.hibernate.type.ProcedureParameterExtractionAware
            astore 11 /* propertyType */
        start local 11 // org.hibernate.type.ProcedureParameterExtractionAware propertyType
         6: .line 815
            aload 11 /* propertyType */
            aload 1 /* statement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 7 /* paramName */
            aastore
            aload 3 /* session */
            invokeinterface org.hibernate.type.ProcedureParameterExtractionAware.extract:(Ljava/sql/CallableStatement;[Ljava/lang/String;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
            astore 12 /* value */
        start local 12 // java.lang.Object value
         7: .line 816
            aload 12 /* value */
            ifnonnull 10
         8: .line 817
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.isKey:Z
            ifeq 11
         9: .line 818
            aconst_null
            areturn
        10: .line 822
      StackMap locals: org.hibernate.type.ComponentType java.sql.CallableStatement java.lang.String[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int java.lang.String int int java.lang.String[] org.hibernate.type.ProcedureParameterExtractionAware java.lang.Object
      StackMap stack:
            iconst_1
            istore 6 /* notNull */
        11: .line 824
      StackMap locals:
      StackMap stack:
            aload 4 /* values */
            iload 5 /* indx */
            aload 12 /* value */
            aastore
        end local 12 // java.lang.Object value
        end local 11 // org.hibernate.type.ProcedureParameterExtractionAware propertyType
        end local 7 // java.lang.String paramName
        12: .line 812
            iinc 8 1
      StackMap locals: org.hibernate.type.ComponentType java.sql.CallableStatement java.lang.String[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int top int int java.lang.String[]
      StackMap stack:
        13: iload 8
            iload 9
            if_icmplt 4
        14: .line 827
            iload 6 /* notNull */
            ifne 16
        15: .line 828
            aconst_null
            astore 4 /* values */
        16: .line 831
      StackMap locals: org.hibernate.type.ComponentType java.sql.CallableStatement java.lang.String[] org.hibernate.engine.spi.SharedSessionContractImplementor java.lang.Object[] int int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* values */
            aload 3 /* session */
            aconst_null
            invokevirtual org.hibernate.type.ComponentType.resolve:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // boolean notNull
        end local 5 // int indx
        end local 4 // java.lang.Object[] values
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.lang.String[] paramNames
        end local 1 // java.sql.CallableStatement statement
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lorg/hibernate/type/ComponentType;
            0   17     1     statement  Ljava/sql/CallableStatement;
            0   17     2    paramNames  [Ljava/lang/String;
            0   17     3       session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1   17     4        values  [Ljava/lang/Object;
            2   17     5          indx  I
            3   17     6       notNull  Z
            5   12     7     paramName  Ljava/lang/String;
            6   12    11  propertyType  Lorg/hibernate/type/ProcedureParameterExtractionAware;
            7   12    12         value  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      statement   
      paramNames  
      session     

  public boolean hasNotNullProperty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 836
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.hasNotNullProperty:Z
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;

  private boolean isCreateEmptyCompositesEnabled();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.ComponentType this
         0: .line 840
            aload 0 /* this */
            getfield org.hibernate.type.ComponentType.createEmptyCompositesEnabled:Z
            ireturn
        end local 0 // org.hibernate.type.ComponentType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/type/ComponentType;
}
SourceFile: "ComponentType.java"
InnerClasses:
  public abstract TypeScope = org.hibernate.type.TypeFactory$TypeScope of org.hibernate.type.TypeFactory