public class org.hibernate.id.UUIDGenerator implements org.hibernate.id.IdentifierGenerator, org.hibernate.id.Configurable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.id.UUIDGenerator
  super_class: java.lang.Object
{
  public static final java.lang.String UUID_GEN_STRATEGY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "uuid_gen_strategy"

  public static final java.lang.String UUID_GEN_STRATEGY_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "uuid_gen_strategy_class"

  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.hibernate.id.UUIDGenerationStrategy strategy;
    descriptor: Lorg/hibernate/id/UUIDGenerationStrategy;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ValueTransformer valueTransformer;
    descriptor: Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 63
            ldc Lorg/hibernate/internal/CoreMessageLogger;
            ldc Lorg/hibernate/id/UUIDGenerator;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.id.UUIDGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.UUIDGenerator this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.id.UUIDGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/UUIDGenerator;

  public static org.hibernate.id.UUIDGenerator buildSessionFactoryUniqueIdentifierGenerator();
    descriptor: ()Lorg/hibernate/id/UUIDGenerator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 69
            new org.hibernate.id.UUIDGenerator
            dup
            invokespecial org.hibernate.id.UUIDGenerator.<init>:()V
            astore 0 /* generator */
        start local 0 // org.hibernate.id.UUIDGenerator generator
         1: .line 70
            aload 0 /* generator */
            getstatic org.hibernate.id.uuid.StandardRandomStrategy.INSTANCE:Lorg/hibernate/id/uuid/StandardRandomStrategy;
            putfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
         2: .line 71
            aload 0 /* generator */
            getstatic org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ToStringTransformer.INSTANCE:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ToStringTransformer;
            putfield org.hibernate.id.UUIDGenerator.valueTransformer:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
         3: .line 72
            aload 0 /* generator */
            areturn
        end local 0 // org.hibernate.id.UUIDGenerator generator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1    4     0  generator  Lorg/hibernate/id/UUIDGenerator;

  public void configure(org.hibernate.type.Type, java.util.Properties, org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/type/Type;Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.hibernate.id.UUIDGenerator this
        start local 1 // org.hibernate.type.Type type
        start local 2 // java.util.Properties params
        start local 3 // org.hibernate.dialect.Dialect d
         0: .line 77
            aload 0 /* this */
            aload 2 /* params */
            ldc "uuid_gen_strategy"
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.id.UUIDGenerationStrategy
            putfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
         1: .line 78
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
            ifnonnull 12
         2: .line 80
            aload 2 /* params */
            ldc "uuid_gen_strategy_class"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* strategyClassName */
        start local 4 // java.lang.String strategyClassName
         3: .line 81
            aload 4 /* strategyClassName */
            ifnull 12
         4: .line 83
            aload 4 /* strategyClassName */
            invokestatic org.hibernate.internal.util.ReflectHelper.classForName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* strategyClass */
        start local 5 // java.lang.Class strategyClass
         5: .line 85
            aload 0 /* this */
            aload 5 /* strategyClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast org.hibernate.id.UUIDGenerationStrategy
            putfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
         6: .line 86
            goto 12
         7: .line 87
      StackMap locals: org.hibernate.id.UUIDGenerator org.hibernate.type.Type java.util.Properties org.hibernate.dialect.Dialect java.lang.String java.lang.Class
      StackMap stack: java.lang.Exception
            astore 6 /* ignore */
        start local 6 // java.lang.Exception ignore
         8: .line 88
            getstatic org.hibernate.id.UUIDGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 6 /* ignore */
            invokeinterface org.hibernate.internal.CoreMessageLogger.unableToInstantiateUuidGenerationStrategy:(Ljava/lang/Exception;)V
        end local 6 // java.lang.Exception ignore
        end local 5 // java.lang.Class strategyClass
         9: .line 90
            goto 12
        10: .line 91
      StackMap locals: org.hibernate.id.UUIDGenerator org.hibernate.type.Type java.util.Properties org.hibernate.dialect.Dialect java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            pop
        11: .line 92
            getstatic org.hibernate.id.UUIDGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 4 /* strategyClassName */
            invokeinterface org.hibernate.internal.CoreMessageLogger.unableToLocateUuidGenerationStrategy:(Ljava/lang/String;)V
        end local 4 // java.lang.String strategyClassName
        12: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
            ifnonnull 14
        13: .line 98
            aload 0 /* this */
            getstatic org.hibernate.id.uuid.StandardRandomStrategy.INSTANCE:Lorg/hibernate/id/uuid/StandardRandomStrategy;
            putfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
        14: .line 101
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/UUID;
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 17
        15: .line 102
            aload 0 /* this */
            getstatic org.hibernate.type.descriptor.java.UUIDTypeDescriptor$PassThroughTransformer.INSTANCE:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$PassThroughTransformer;
            putfield org.hibernate.id.UUIDGenerator.valueTransformer:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
        16: .line 103
            goto 24
        17: .line 104
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/String;
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 20
        18: .line 105
            aload 0 /* this */
            getstatic org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ToStringTransformer.INSTANCE:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ToStringTransformer;
            putfield org.hibernate.id.UUIDGenerator.valueTransformer:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
        19: .line 106
            goto 24
        20: .line 107
      StackMap locals:
      StackMap stack:
            ldc [B
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 23
        21: .line 108
            aload 0 /* this */
            getstatic org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ToBytesTransformer.INSTANCE:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ToBytesTransformer;
            putfield org.hibernate.id.UUIDGenerator.valueTransformer:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
        22: .line 109
            goto 24
        23: .line 111
      StackMap locals:
      StackMap stack:
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unanticipated return type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] for UUID conversion"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 113
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.dialect.Dialect d
        end local 2 // java.util.Properties params
        end local 1 // org.hibernate.type.Type type
        end local 0 // org.hibernate.id.UUIDGenerator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0               this  Lorg/hibernate/id/UUIDGenerator;
            0   25     1               type  Lorg/hibernate/type/Type;
            0   25     2             params  Ljava/util/Properties;
            0   25     3                  d  Lorg/hibernate/dialect/Dialect;
            3   12     4  strategyClassName  Ljava/lang/String;
            5    9     5      strategyClass  Ljava/lang/Class;
            8    9     6             ignore  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
           4     9      10  Class java.lang.ClassNotFoundException
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
        Name  Flags
      type    
      params  
      d       

  public java.io.Serializable generate(org.hibernate.engine.spi.SessionImplementor, java.lang.Object);
    descriptor: (Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/io/Serializable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.id.UUIDGenerator this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // java.lang.Object object
         0: .line 116
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.valueTransformer:Lorg/hibernate/type/descriptor/java/UUIDTypeDescriptor$ValueTransformer;
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
            aload 1 /* session */
            invokeinterface org.hibernate.id.UUIDGenerationStrategy.generateUUID:(Lorg/hibernate/engine/spi/SessionImplementor;)Ljava/util/UUID;
            invokeinterface org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ValueTransformer.transform:(Ljava/util/UUID;)Ljava/io/Serializable;
            areturn
        end local 2 // java.lang.Object object
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.id.UUIDGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/id/UUIDGenerator;
            0    1     1  session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    1     2   object  Ljava/lang/Object;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      session  
      object   
}
SourceFile: "UUIDGenerator.java"
InnerClasses:
  public PassThroughTransformer = org.hibernate.type.descriptor.java.UUIDTypeDescriptor$PassThroughTransformer of org.hibernate.type.descriptor.java.UUIDTypeDescriptor
  public ToBytesTransformer = org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ToBytesTransformer of org.hibernate.type.descriptor.java.UUIDTypeDescriptor
  public ToStringTransformer = org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ToStringTransformer of org.hibernate.type.descriptor.java.UUIDTypeDescriptor
  public abstract ValueTransformer = org.hibernate.type.descriptor.java.UUIDTypeDescriptor$ValueTransformer of org.hibernate.type.descriptor.java.UUIDTypeDescriptor