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=1, locals=0, args_size=0
         0: .line 46
            ldc Lorg/hibernate/id/UUIDGenerator;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/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 42
            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 52
            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 53
            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 54
            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 55
            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.service.ServiceRegistry);
    descriptor: (Lorg/hibernate/type/Type;Ljava/util/Properties;Lorg/hibernate/service/ServiceRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, 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.service.ServiceRegistry serviceRegistry
         0: .line 61
            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 62
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
            ifnonnull 13
         2: .line 64
            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 65
            aload 4 /* strategyClassName */
            ifnull 13
         4: .line 67
            aload 3 /* serviceRegistry */
            ldc Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            invokeinterface org.hibernate.service.ServiceRegistry.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.boot.registry.classloading.spi.ClassLoaderService
            astore 5 /* cls */
        start local 5 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService cls
         5: .line 68
            aload 5 /* cls */
            aload 4 /* strategyClassName */
            invokeinterface org.hibernate.boot.registry.classloading.spi.ClassLoaderService.classForName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* strategyClass */
        start local 6 // java.lang.Class strategyClass
         6: .line 70
            aload 0 /* this */
            aload 6 /* strategyClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast org.hibernate.id.UUIDGenerationStrategy
            putfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
         7: .line 71
            goto 13
         8: .line 72
      StackMap locals: org.hibernate.id.UUIDGenerator org.hibernate.type.Type java.util.Properties org.hibernate.service.ServiceRegistry java.lang.String org.hibernate.boot.registry.classloading.spi.ClassLoaderService java.lang.Class
      StackMap stack: java.lang.Exception
            astore 7 /* ignore */
        start local 7 // java.lang.Exception ignore
         9: .line 73
            getstatic org.hibernate.id.UUIDGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 7 /* ignore */
            invokeinterface org.hibernate.internal.CoreMessageLogger.unableToInstantiateUuidGenerationStrategy:(Ljava/lang/Exception;)V
        end local 7 // java.lang.Exception ignore
        end local 6 // java.lang.Class strategyClass
        end local 5 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService cls
        10: .line 75
            goto 13
        11: .line 76
      StackMap locals: org.hibernate.id.UUIDGenerator org.hibernate.type.Type java.util.Properties org.hibernate.service.ServiceRegistry java.lang.String
      StackMap stack: org.hibernate.boot.registry.classloading.spi.ClassLoadingException
            pop
        12: .line 77
            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
        13: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.id.UUIDGenerator.strategy:Lorg/hibernate/id/UUIDGenerationStrategy;
            ifnonnull 15
        14: .line 83
            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;
        15: .line 86
      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 18
        16: .line 87
            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;
        17: .line 88
            goto 25
        18: .line 89
      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 21
        19: .line 90
            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;
        20: .line 91
            goto 25
        21: .line 92
      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 24
        22: .line 93
            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;
        23: .line 94
            goto 25
        24: .line 96
      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
        25: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.service.ServiceRegistry serviceRegistry
        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   26     0               this  Lorg/hibernate/id/UUIDGenerator;
            0   26     1               type  Lorg/hibernate/type/Type;
            0   26     2             params  Ljava/util/Properties;
            0   26     3    serviceRegistry  Lorg/hibernate/service/ServiceRegistry;
            3   13     4  strategyClassName  Ljava/lang/String;
            5   10     5                cls  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            6   10     6      strategyClass  Ljava/lang/Class;
            9   10     7             ignore  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Exception
           4    10      11  Class org.hibernate.boot.registry.classloading.spi.ClassLoadingException
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
                 Name  Flags
      type             
      params           
      serviceRegistry  

  public java.io.Serializable generate(org.hibernate.engine.spi.SharedSessionContractImplementor, java.lang.Object);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;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.SharedSessionContractImplementor session
        start local 2 // java.lang.Object object
         0: .line 101
            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/SharedSessionContractImplementor;)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.SharedSessionContractImplementor 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/SharedSessionContractImplementor;
            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