class org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
  super_class: java.lang.Object
{
  private final org.hibernate.persister.entity.EntityPersister persister;
    descriptor: Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private int hashCode;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.hibernate.persister.entity.EntityPersister, java.lang.Object[]);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=12, args_size=3
        start local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
        start local 1 // org.hibernate.persister.entity.EntityPersister persister
        start local 2 // java.lang.Object[] values
         0: .line 369
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 370
            aload 0 /* this */
            aload 1 /* persister */
            putfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.persister:Lorg/hibernate/persister/entity/EntityPersister;
         2: .line 371
            aload 0 /* this */
            aload 2 /* values */
            putfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.values:[Ljava/lang/Object;
         3: .line 374
            iconst_1
            istore 3 /* hashCodeCalculation */
        start local 3 // int hashCodeCalculation
         4: .line 375
            bipush 31
            iload 3 /* hashCodeCalculation */
            imul
            aload 1 /* persister */
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 3 /* hashCodeCalculation */
         5: .line 377
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdentifierProperties:()[I
            astore 4 /* naturalIdPropertyIndexes */
        start local 4 // int[] naturalIdPropertyIndexes
         6: .line 378
            aload 0 /* this */
            aload 4 /* naturalIdPropertyIndexes */
            arraylength
            anewarray org.hibernate.type.Type
            putfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.naturalIdTypes:[Lorg/hibernate/type/Type;
         7: .line 379
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: .line 380
            aload 4 /* naturalIdPropertyIndexes */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 18
      StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId org.hibernate.persister.entity.EntityPersister java.lang.Object[] int int[] int top int int int[]
      StackMap stack:
         9: aload 9
            iload 7
            iaload
            istore 6 /* naturalIdPropertyIndex */
        start local 6 // int naturalIdPropertyIndex
        10: .line 381
            aload 1 /* persister */
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyNames:()[Ljava/lang/String;
            iload 6 /* naturalIdPropertyIndex */
            aaload
            invokeinterface org.hibernate.persister.entity.EntityPersister.getPropertyType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 10 /* type */
        start local 10 // org.hibernate.type.Type type
        11: .line 382
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.naturalIdTypes:[Lorg/hibernate/type/Type;
            iload 5 /* i */
            aload 10 /* type */
            aastore
        12: .line 383
            aload 2 /* values */
            iload 5 /* i */
            aaload
            ifnonnull 13
            iconst_0
            goto 14
      StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId org.hibernate.persister.entity.EntityPersister java.lang.Object[] int int[] int int int int int[] org.hibernate.type.Type
      StackMap stack:
        13: aload 10 /* type */
            aload 2 /* values */
            iload 5 /* i */
            aaload
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getHashCode:(Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)I
      StackMap locals:
      StackMap stack: int
        14: istore 11 /* elementHashCode */
        start local 11 // int elementHashCode
        15: .line 384
            bipush 31
            iload 3 /* hashCodeCalculation */
            imul
            iload 11 /* elementHashCode */
            iadd
            istore 3 /* hashCodeCalculation */
        16: .line 385
            iinc 5 /* i */ 1
        end local 11 // int elementHashCode
        end local 10 // org.hibernate.type.Type type
        end local 6 // int naturalIdPropertyIndex
        17: .line 380
            iinc 7 1
      StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId org.hibernate.persister.entity.EntityPersister java.lang.Object[] int int[] int top int int int[]
      StackMap stack:
        18: iload 7
            iload 8
            if_icmplt 9
        19: .line 388
            aload 0 /* this */
            iload 3 /* hashCodeCalculation */
            putfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.hashCode:I
        20: .line 389
            return
        end local 5 // int i
        end local 4 // int[] naturalIdPropertyIndexes
        end local 3 // int hashCodeCalculation
        end local 2 // java.lang.Object[] values
        end local 1 // org.hibernate.persister.entity.EntityPersister persister
        end local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   21     0                      this  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
            0   21     1                 persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   21     2                    values  [Ljava/lang/Object;
            4   21     3       hashCodeCalculation  I
            6   21     4  naturalIdPropertyIndexes  [I
            8   21     5                         i  I
           10   17     6    naturalIdPropertyIndex  I
           11   17    10                      type  Lorg/hibernate/type/Type;
           15   17    11           elementHashCode  I
    MethodParameters:
           Name  Flags
      persister  
      values     

  public java.lang.Object[] getValues();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
         0: .line 392
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.values:[Ljava/lang/Object;
            areturn
        end local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
         0: .line 397
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.hashCode:I
            ireturn
        end local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
        start local 1 // java.lang.Object obj
         0: .line 402
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 403
            iconst_1
            ireturn
         2: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 4
         3: .line 406
            iconst_0
            ireturn
         4: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 6
         5: .line 409
            iconst_0
            ireturn
         6: .line 412
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
            astore 2 /* other */
        start local 2 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId other
         7: .line 413
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.persister:Lorg/hibernate/persister/entity/EntityPersister;
            aload 2 /* other */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.persister:Lorg/hibernate/persister/entity/EntityPersister;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
            aload 0 /* this */
            aload 2 /* other */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.values:[Ljava/lang/Object;
            invokevirtual org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.isSame:([Ljava/lang/Object;)Z
            ifeq 8
            iconst_1
            ireturn
      StackMap locals: org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId other
        end local 1 // java.lang.Object obj
        end local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
            0    9     1    obj  Ljava/lang/Object;
            7    9     2  other  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
    MethodParameters:
      Name  Flags
      obj   

  private boolean isSame(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
        start local 1 // java.lang.Object[] otherValues
         0: .line 418
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 419
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.naturalIdTypes:[Lorg/hibernate/type/Type;
            iload 2 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.values:[Ljava/lang/Object;
            iload 2 /* i */
            aaload
            aload 1 /* otherValues */
            iload 2 /* i */
            aaload
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.persister:Lorg/hibernate/persister/entity/EntityPersister;
            invokeinterface org.hibernate.persister.entity.EntityPersister.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.isEqual:(Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Z
            ifne 4
         3: .line 420
            iconst_0
            ireturn
         4: .line 418
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId.naturalIdTypes:[Lorg/hibernate/type/Type;
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 423
            iconst_1
            ireturn
        end local 1 // java.lang.Object[] otherValues
        end local 0 // org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/hibernate/engine/internal/NaturalIdXrefDelegate$CachedNaturalId;
            0    7     1  otherValues  [Ljava/lang/Object;
            1    6     2            i  I
    MethodParameters:
             Name  Flags
      otherValues  
}
SourceFile: "NaturalIdXrefDelegate.java"
NestHost: org.hibernate.engine.internal.NaturalIdXrefDelegate
InnerClasses:
  private CachedNaturalId = org.hibernate.engine.internal.NaturalIdXrefDelegate$CachedNaturalId of org.hibernate.engine.internal.NaturalIdXrefDelegate