public class org.hibernate.id.enhanced.TableGenerator implements org.hibernate.id.PersistentIdentifierGenerator, org.hibernate.id.Configurable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.id.enhanced.TableGenerator
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

  public static final int DEF_SEGMENT_LENGTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

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

  public static final int DEFAULT_INITIAL_VALUE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

  public static final int DEFAULT_INCREMENT_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

  private org.hibernate.type.Type identifierType;
    descriptor: Lorg/hibernate/type/Type;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String tableName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String segmentColumnName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String segmentValue;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  private java.lang.String valueColumnName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.String selectQuery;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String insertQuery;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String updateQuery;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.id.enhanced.Optimizer optimizer;
    descriptor: Lorg/hibernate/id/enhanced/Optimizer;
    flags: (0x0002) ACC_PRIVATE

  private long accessCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 136
            ldc Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 137
            ldc Lorg/hibernate/id/enhanced/TableGenerator;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         2: .line 135
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.id.enhanced.TableGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 224
            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.enhanced.TableGenerator this
         0: .line 134
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public java.lang.Object generatorKey();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 248
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final org.hibernate.type.Type getIdentifierType();
    descriptor: ()Lorg/hibernate/type/Type;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 257
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.identifierType:Lorg/hibernate/type/Type;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final java.lang.String getTableName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 266
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final java.lang.String getSegmentColumnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 276
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final java.lang.String getSegmentValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 287
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentValue:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final int getSegmentValueLength();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 300
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentValueLength:I
            ireturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final java.lang.String getValueColumnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 309
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final int getInitialValue();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 319
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.initialValue:I
            ireturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final int getIncrementSize();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 329
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.incrementSize:I
            ireturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final org.hibernate.id.enhanced.Optimizer getOptimizer();
    descriptor: ()Lorg/hibernate/id/enhanced/Optimizer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 338
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.optimizer:Lorg/hibernate/id/enhanced/Optimizer;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  public final long getTableAccessCount();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 348
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.accessCount:J
            lreturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  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=7, locals=7, args_size=4
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // org.hibernate.type.Type type
        start local 2 // java.util.Properties params
        start local 3 // org.hibernate.dialect.Dialect dialect
         0: .line 353
            aload 0 /* this */
            aload 1 /* type */
            putfield org.hibernate.id.enhanced.TableGenerator.identifierType:Lorg/hibernate/type/Type;
         1: .line 355
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            aload 3 /* dialect */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineGeneratorTableName:(Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
         2: .line 356
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            aload 3 /* dialect */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineSegmentColumnName:(Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
         3: .line 357
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            aload 3 /* dialect */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineValueColumnName:(Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
         4: .line 359
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineSegmentValue:(Ljava/util/Properties;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.segmentValue:Ljava/lang/String;
         5: .line 361
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineSegmentColumnSize:(Ljava/util/Properties;)I
            putfield org.hibernate.id.enhanced.TableGenerator.segmentValueLength:I
         6: .line 362
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineInitialValue:(Ljava/util/Properties;)I
            putfield org.hibernate.id.enhanced.TableGenerator.initialValue:I
         7: .line 363
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* params */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineIncrementSize:(Ljava/util/Properties;)I
            putfield org.hibernate.id.enhanced.TableGenerator.incrementSize:I
         8: .line 365
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* dialect */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.buildSelectQuery:(Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.selectQuery:Ljava/lang/String;
         9: .line 366
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.buildUpdateQuery:()Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.updateQuery:Ljava/lang/String;
        10: .line 367
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.buildInsertQuery:()Ljava/lang/String;
            putfield org.hibernate.id.enhanced.TableGenerator.insertQuery:Ljava/lang/String;
        11: .line 371
            ldc "hibernate.id.optimizer.pooled.prefer_lo"
            aload 2 /* params */
            iconst_0
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getBoolean:(Ljava/lang/String;Ljava/util/Map;Z)Z
            ifeq 13
        12: .line 372
            getstatic org.hibernate.id.enhanced.StandardOptimizerDescriptor.POOLED_LO:Lorg/hibernate/id/enhanced/StandardOptimizerDescriptor;
            invokevirtual org.hibernate.id.enhanced.StandardOptimizerDescriptor.getExternalName:()Ljava/lang/String;
            goto 14
        13: .line 373
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.id.enhanced.StandardOptimizerDescriptor.POOLED:Lorg/hibernate/id/enhanced/StandardOptimizerDescriptor;
            invokevirtual org.hibernate.id.enhanced.StandardOptimizerDescriptor.getExternalName:()Ljava/lang/String;
        14: .line 371
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* defaultPooledOptimizerStrategy */
        start local 4 // java.lang.String defaultPooledOptimizerStrategy
        15: .line 374
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.incrementSize:I
            iconst_1
            if_icmpgt 17
        16: .line 375
            getstatic org.hibernate.id.enhanced.StandardOptimizerDescriptor.NONE:Lorg/hibernate/id/enhanced/StandardOptimizerDescriptor;
            invokevirtual org.hibernate.id.enhanced.StandardOptimizerDescriptor.getExternalName:()Ljava/lang/String;
            goto 18
        17: .line 376
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* defaultPooledOptimizerStrategy */
        18: .line 374
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* defaultOptimizerStrategy */
        start local 5 // java.lang.String defaultOptimizerStrategy
        19: .line 377
            ldc "optimizer"
            aload 2 /* params */
            aload 5 /* defaultOptimizerStrategy */
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* optimizationStrategy */
        start local 6 // java.lang.String optimizationStrategy
        20: .line 378
            aload 0 /* this */
        21: .line 379
            aload 6 /* optimizationStrategy */
        22: .line 380
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.identifierType:Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
        23: .line 381
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.incrementSize:I
        24: .line 382
            ldc "initial_value"
            aload 2 /* params */
            iconst_m1
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            i2l
        25: .line 378
            invokestatic org.hibernate.id.enhanced.OptimizerFactory.buildOptimizer:(Ljava/lang/String;Ljava/lang/Class;IJ)Lorg/hibernate/id/enhanced/Optimizer;
            putfield org.hibernate.id.enhanced.TableGenerator.optimizer:Lorg/hibernate/id/enhanced/Optimizer;
        26: .line 384
            return
        end local 6 // java.lang.String optimizationStrategy
        end local 5 // java.lang.String defaultOptimizerStrategy
        end local 4 // java.lang.String defaultPooledOptimizerStrategy
        end local 3 // org.hibernate.dialect.Dialect dialect
        end local 2 // java.util.Properties params
        end local 1 // org.hibernate.type.Type type
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   27     0                            this  Lorg/hibernate/id/enhanced/TableGenerator;
            0   27     1                            type  Lorg/hibernate/type/Type;
            0   27     2                          params  Ljava/util/Properties;
            0   27     3                         dialect  Lorg/hibernate/dialect/Dialect;
           15   27     4  defaultPooledOptimizerStrategy  Ljava/lang/String;
           19   27     5        defaultOptimizerStrategy  Ljava/lang/String;
           20   27     6            optimizationStrategy  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      type     
      params   
      dialect  

  protected java.lang.String determineGeneratorTableName(java.util.Properties, org.hibernate.dialect.Dialect);
    descriptor: (Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
        start local 2 // org.hibernate.dialect.Dialect dialect
         0: .line 397
            ldc "table_name"
            aload 1 /* params */
            ldc "hibernate_sequences"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 398
            aload 3 /* name */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 2
            iconst_1
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* isGivenNameUnqualified */
        start local 4 // boolean isGivenNameUnqualified
         4: .line 399
            iload 4 /* isGivenNameUnqualified */
            ifeq 13
         5: .line 400
            aload 1 /* params */
            ldc "identifier_normalizer"
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cfg.ObjectNameNormalizer
            astore 5 /* normalizer */
        start local 5 // org.hibernate.cfg.ObjectNameNormalizer normalizer
         6: .line 401
            aload 5 /* normalizer */
            aload 3 /* name */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
         7: .line 403
            aload 5 /* normalizer */
            aload 1 /* params */
            ldc "schema"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* schemaName */
        start local 6 // java.lang.String schemaName
         8: .line 404
            aload 5 /* normalizer */
            aload 1 /* params */
            ldc "catalog"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* catalogName */
        start local 7 // java.lang.String catalogName
         9: .line 406
            aload 2 /* dialect */
            aload 7 /* catalogName */
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
        10: .line 407
            aload 2 /* dialect */
            aload 6 /* schemaName */
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
        11: .line 408
            aload 2 /* dialect */
            aload 3 /* name */
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
        12: .line 405
            invokestatic org.hibernate.mapping.Table.qualify:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
        end local 7 // java.lang.String catalogName
        end local 6 // java.lang.String schemaName
        end local 5 // org.hibernate.cfg.ObjectNameNormalizer normalizer
        13: .line 414
      StackMap locals: int
      StackMap stack:
            aload 3 /* name */
            areturn
        end local 4 // boolean isGivenNameUnqualified
        end local 3 // java.lang.String name
        end local 2 // org.hibernate.dialect.Dialect dialect
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   14     0                    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0   14     1                  params  Ljava/util/Properties;
            0   14     2                 dialect  Lorg/hibernate/dialect/Dialect;
            1   14     3                    name  Ljava/lang/String;
            4   14     4  isGivenNameUnqualified  Z
            6   13     5              normalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
            8   13     6              schemaName  Ljava/lang/String;
            9   13     7             catalogName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      params   
      dialect  

  protected java.lang.String determineSegmentColumnName(java.util.Properties, org.hibernate.dialect.Dialect);
    descriptor: (Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
        start local 2 // org.hibernate.dialect.Dialect dialect
         0: .line 429
            aload 1 /* params */
            ldc "identifier_normalizer"
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cfg.ObjectNameNormalizer
            astore 3 /* normalizer */
        start local 3 // org.hibernate.cfg.ObjectNameNormalizer normalizer
         1: .line 430
            ldc "segment_column_name"
            aload 1 /* params */
            ldc "sequence_name"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 431
            aload 2 /* dialect */
            aload 3 /* normalizer */
            aload 4 /* name */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String name
        end local 3 // org.hibernate.cfg.ObjectNameNormalizer normalizer
        end local 2 // org.hibernate.dialect.Dialect dialect
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    3     1      params  Ljava/util/Properties;
            0    3     2     dialect  Lorg/hibernate/dialect/Dialect;
            1    3     3  normalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
            2    3     4        name  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      params   
      dialect  

  protected java.lang.String determineValueColumnName(java.util.Properties, org.hibernate.dialect.Dialect);
    descriptor: (Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
        start local 2 // org.hibernate.dialect.Dialect dialect
         0: .line 445
            aload 1 /* params */
            ldc "identifier_normalizer"
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cfg.ObjectNameNormalizer
            astore 3 /* normalizer */
        start local 3 // org.hibernate.cfg.ObjectNameNormalizer normalizer
         1: .line 446
            ldc "value_column_name"
            aload 1 /* params */
            ldc "next_val"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 447
            aload 2 /* dialect */
            aload 3 /* normalizer */
            aload 4 /* name */
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String name
        end local 3 // org.hibernate.cfg.ObjectNameNormalizer normalizer
        end local 2 // org.hibernate.dialect.Dialect dialect
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    3     1      params  Ljava/util/Properties;
            0    3     2     dialect  Lorg/hibernate/dialect/Dialect;
            1    3     3  normalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
            2    3     4        name  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      params   
      dialect  

  protected java.lang.String determineSegmentValue(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
         0: .line 460
            aload 1 /* params */
            ldc "segment_value"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* segmentValue */
        start local 2 // java.lang.String segmentValue
         1: .line 461
            aload 2 /* segmentValue */
            invokestatic org.hibernate.internal.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 462
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual org.hibernate.id.enhanced.TableGenerator.determineDefaultSegmentValue:(Ljava/util/Properties;)Ljava/lang/String;
            astore 2 /* segmentValue */
         3: .line 464
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* segmentValue */
            areturn
        end local 2 // java.lang.String segmentValue
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    4     1        params  Ljava/util/Properties;
            1    4     2  segmentValue  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      params  

  protected java.lang.String determineDefaultSegmentValue(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
         0: .line 475
            ldc "prefer_entity_table_as_segment_value"
            aload 1 /* params */
            iconst_0
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getBoolean:(Ljava/lang/String;Ljava/util/Map;Z)Z
            istore 2 /* preferSegmentPerEntity */
        start local 2 // boolean preferSegmentPerEntity
         1: .line 476
            iload 2 /* preferSegmentPerEntity */
            ifeq 2
            aload 1 /* params */
            ldc "target_table"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: ldc "default"
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 3 /* defaultToUse */
        start local 3 // java.lang.String defaultToUse
         4: .line 477
            getstatic org.hibernate.id.enhanced.TableGenerator.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            aload 3 /* defaultToUse */
            invokeinterface org.hibernate.internal.CoreMessageLogger.usingDefaultIdGeneratorSegmentValue:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 478
            aload 3 /* defaultToUse */
            areturn
        end local 3 // java.lang.String defaultToUse
        end local 2 // boolean preferSegmentPerEntity
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    6     1                  params  Ljava/util/Properties;
            1    6     2  preferSegmentPerEntity  Z
            4    6     3            defaultToUse  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      params  

  protected int determineSegmentColumnSize(java.util.Properties);
    descriptor: (Ljava/util/Properties;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
         0: .line 491
            ldc "segment_value_length"
            aload 1 /* params */
            sipush 255
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            ireturn
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    1     1  params  Ljava/util/Properties;
    MethodParameters:
        Name  Flags
      params  

  protected int determineInitialValue(java.util.Properties);
    descriptor: (Ljava/util/Properties;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
         0: .line 495
            ldc "initial_value"
            aload 1 /* params */
            iconst_1
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            ireturn
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    1     1  params  Ljava/util/Properties;
    MethodParameters:
        Name  Flags
      params  

  protected int determineIncrementSize(java.util.Properties);
    descriptor: (Ljava/util/Properties;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.util.Properties params
         0: .line 499
            ldc "increment_size"
            aload 1 /* params */
            iconst_1
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            ireturn
        end local 1 // java.util.Properties params
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    1     1  params  Ljava/util/Properties;
    MethodParameters:
        Name  Flags
      params  

  protected java.lang.String buildSelectQuery(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 504
            new java.lang.StringBuilder
            dup
            ldc "select "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "tbl"
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 505
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "tbl"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 506
            ldc " where "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "tbl"
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.qualify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 504
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* query */
        start local 2 // java.lang.String query
         4: .line 507
            new org.hibernate.LockOptions
            dup
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            invokespecial org.hibernate.LockOptions.<init>:(Lorg/hibernate/LockMode;)V
            astore 3 /* lockOptions */
        start local 3 // org.hibernate.LockOptions lockOptions
         5: .line 508
            aload 3 /* lockOptions */
            ldc "tbl"
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            invokevirtual org.hibernate.LockOptions.setAliasSpecificLockMode:(Ljava/lang/String;Lorg/hibernate/LockMode;)Lorg/hibernate/LockOptions;
            pop
         6: .line 509
            ldc "tbl"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            aastore
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            astore 4 /* updateTargetColumnsMap */
        start local 4 // java.util.Map updateTargetColumnsMap
         7: .line 510
            aload 1 /* dialect */
            aload 2 /* query */
            aload 3 /* lockOptions */
            aload 4 /* updateTargetColumnsMap */
            invokevirtual org.hibernate.dialect.Dialect.applyLocksToSql:(Ljava/lang/String;Lorg/hibernate/LockOptions;Ljava/util/Map;)Ljava/lang/String;
            areturn
        end local 4 // java.util.Map updateTargetColumnsMap
        end local 3 // org.hibernate.LockOptions lockOptions
        end local 2 // java.lang.String query
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    8     1                 dialect  Lorg/hibernate/dialect/Dialect;
            4    8     2                   query  Ljava/lang/String;
            5    8     3             lockOptions  Lorg/hibernate/LockOptions;
            7    8     4  updateTargetColumnsMap  Ljava/util/Map;
    MethodParameters:
         Name  Flags
      dialect  

  protected java.lang.String buildUpdateQuery();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 514
            new java.lang.StringBuilder
            dup
            ldc "update "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 515
            ldc " set "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 516
            ldc " where "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=? and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 514
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  protected java.lang.String buildInsertQuery();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 520
            new java.lang.StringBuilder
            dup
            ldc "insert into "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " values (?,?)"
            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.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  private org.hibernate.id.IntegralDataTypeHolder makeValue();
    descriptor: ()Lorg/hibernate/id/IntegralDataTypeHolder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
         0: .line 524
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.identifierType:Lorg/hibernate/type/Type;
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            invokestatic org.hibernate.id.IdentifierGeneratorHelper.getIntegralDataTypeHolder:(Ljava/lang/Class;)Lorg/hibernate/id/IntegralDataTypeHolder;
            areturn
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/TableGenerator;

  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=7, locals=5, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // java.lang.Object obj
         0: .line 529
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getServiceRegistry:()Lorg/hibernate/service/spi/ServiceRegistryImplementor;
         1: .line 530
            ldc Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.engine.jdbc.spi.JdbcServices
         2: .line 531
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlStatementLogger:()Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;
         3: .line 529
            astore 3 /* statementLogger */
        start local 3 // org.hibernate.engine.jdbc.spi.SqlStatementLogger statementLogger
         4: .line 532
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getEventListenerManager:()Lorg/hibernate/engine/spi/SessionEventListenerManager;
            astore 4 /* statsCollector */
        start local 4 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         5: .line 534
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.optimizer:Lorg/hibernate/id/enhanced/Optimizer;
         6: .line 535
            new org.hibernate.id.enhanced.TableGenerator$1
            dup
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* statementLogger */
            aload 4 /* statsCollector */
            invokespecial org.hibernate.id.enhanced.TableGenerator$1.<init>:(Lorg/hibernate/id/enhanced/TableGenerator;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;Lorg/hibernate/engine/spi/SessionEventListenerManager;)V
         7: .line 534
            invokeinterface org.hibernate.id.enhanced.Optimizer.generate:(Lorg/hibernate/id/enhanced/AccessCallback;)Ljava/io/Serializable;
            areturn
        end local 4 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
        end local 3 // org.hibernate.engine.jdbc.spi.SqlStatementLogger statementLogger
        end local 2 // java.lang.Object obj
        end local 1 // org.hibernate.engine.spi.SessionImplementor session
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    8     1          session  Lorg/hibernate/engine/spi/SessionImplementor;
            0    8     2              obj  Ljava/lang/Object;
            4    8     3  statementLogger  Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;
            5    8     4   statsCollector  Lorg/hibernate/engine/spi/SessionEventListenerManager;
    MethodParameters:
         Name  Flags
      session  final
      obj      final

  private java.sql.PreparedStatement prepareStatement(java.sql.Connection, java.lang.String, org.hibernate.engine.jdbc.spi.SqlStatementLogger, org.hibernate.engine.spi.SessionEventListenerManager);
    descriptor: (Ljava/sql/Connection;Ljava/lang/String;Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;Lorg/hibernate/engine/spi/SessionEventListenerManager;)Ljava/sql/PreparedStatement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.sql.Connection connection
        start local 2 // java.lang.String sql
        start local 3 // org.hibernate.engine.jdbc.spi.SqlStatementLogger statementLogger
        start local 4 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         0: .line 623
            aload 3 /* statementLogger */
            aload 2 /* sql */
            getstatic org.hibernate.engine.jdbc.internal.FormatStyle.BASIC:Lorg/hibernate/engine/jdbc/internal/FormatStyle;
            invokevirtual org.hibernate.engine.jdbc.internal.FormatStyle.getFormatter:()Lorg/hibernate/engine/jdbc/internal/Formatter;
            invokevirtual org.hibernate.engine.jdbc.spi.SqlStatementLogger.logStatement:(Ljava/lang/String;Lorg/hibernate/engine/jdbc/internal/Formatter;)V
         1: .line 625
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementStart:()V
         2: .line 626
            aload 1 /* connection */
            aload 2 /* sql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 6
         3: .line 629
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementEnd:()V
         4: .line 626
            aload 6
            areturn
         5: .line 628
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         6: .line 629
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementEnd:()V
         7: .line 630
            aload 5
            athrow
        end local 4 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
        end local 3 // org.hibernate.engine.jdbc.spi.SqlStatementLogger statementLogger
        end local 2 // java.lang.String sql
        end local 1 // java.sql.Connection connection
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    8     1       connection  Ljava/sql/Connection;
            0    8     2              sql  Ljava/lang/String;
            0    8     3  statementLogger  Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;
            0    8     4   statsCollector  Lorg/hibernate/engine/spi/SessionEventListenerManager;
      Exception table:
        from    to  target  type
           1     3       5  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                 Name  Flags
      connection       
      sql              
      statementLogger  
      statsCollector   

  private int executeUpdate(java.sql.PreparedStatement, org.hibernate.engine.spi.SessionEventListenerManager);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionEventListenerManager;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=5, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         0: .line 635
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementStart:()V
         1: .line 636
            aload 1 /* ps */
            invokeinterface java.sql.PreparedStatement.executeUpdate:()I
            istore 4
         2: .line 639
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         3: .line 636
            iload 4
            ireturn
         4: .line 638
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 639
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         6: .line 640
            aload 3
            athrow
        end local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    7     1              ps  Ljava/sql/PreparedStatement;
            0    7     2  statsCollector  Lorg/hibernate/engine/spi/SessionEventListenerManager;
      Exception table:
        from    to  target  type
           0     2       4  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                Name  Flags
      ps              
      statsCollector  

  private java.sql.ResultSet executeQuery(java.sql.PreparedStatement, org.hibernate.engine.spi.SessionEventListenerManager);
    descriptor: (Ljava/sql/PreparedStatement;Lorg/hibernate/engine/spi/SessionEventListenerManager;)Ljava/sql/ResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=5, args_size=3
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         0: .line 646
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementStart:()V
         1: .line 647
            aload 1 /* ps */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 4
         2: .line 650
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         3: .line 647
            aload 4
            areturn
         4: .line 649
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 650
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         6: .line 651
            aload 3
            athrow
        end local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    7     1              ps  Ljava/sql/PreparedStatement;
            0    7     2  statsCollector  Lorg/hibernate/engine/spi/SessionEventListenerManager;
      Exception table:
        from    to  target  type
           0     2       4  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                Name  Flags
      ps              
      statsCollector  

  public java.lang.String[] sqlCreateStrings(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 656
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 657
            new java.lang.StringBuilder
            dup
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getCreateTableString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ( "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 658
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* dialect */
            bipush 12
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentValueLength:I
            i2l
            iconst_0
            iconst_0
            invokevirtual org.hibernate.dialect.Dialect.getTypeName:(IJII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not null "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 659
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* dialect */
            bipush -5
            invokevirtual org.hibernate.dialect.Dialect.getTypeName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 660
            ldc ", primary key ( "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.segmentColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " ) )"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getTableTypeString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 657
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
         6: .line 656
            areturn
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    7     1  dialect  Lorg/hibernate/dialect/Dialect;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      dialect  

  public java.lang.String[] sqlDropStrings(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.TableGenerator this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 666
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.TableGenerator.tableName:Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.getDropTableString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            areturn
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.enhanced.TableGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/id/enhanced/TableGenerator;
            0    1     1  dialect  Lorg/hibernate/dialect/Dialect;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      dialect  
}
SourceFile: "TableGenerator.java"
NestMembers:
  org.hibernate.id.enhanced.TableGenerator$1  org.hibernate.id.enhanced.TableGenerator$1$1
InnerClasses:
  org.hibernate.id.enhanced.TableGenerator$1