public class org.hibernate.id.MultipleHiLoPerTableGenerator 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.MultipleHiLoPerTableGenerator
  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 ID_TABLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "table"

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

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

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

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

  private static final int DEFAULT_PK_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

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

  private static final java.lang.String DEFAULT_PK_COLUMN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sequence_name"

  private static final java.lang.String DEFAULT_VALUE_COLUMN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sequence_next_hi_value"

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

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

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

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

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

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

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

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

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

  private java.lang.Class returnClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE

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

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

  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.MultipleHiLoPerTableGenerator this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 120
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 121
            new java.lang.StringBuilder
            dup
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getCreateTableString:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 122
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         3: .line 123
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 124
            ldc " ( "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 125
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.pkColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 126
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         7: .line 127
            aload 1 /* dialect */
            bipush 12
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.keySize: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;
         8: .line 128
            ldc ",  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 129
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 130
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 131
            aload 1 /* dialect */
            iconst_4
            invokevirtual org.hibernate.dialect.Dialect.getTypeName:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 132
            ldc " )"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 133
            aload 1 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getTableTypeString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 134
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        15: .line 120
            areturn
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            0   16     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.MultipleHiLoPerTableGenerator this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 139
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            0    1     1  dialect  Lorg/hibernate/dialect/Dialect;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      dialect  

  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.MultipleHiLoPerTableGenerator this
         0: .line 143
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.id.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;

  public synchronized 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: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.hibernate.id.MultipleHiLoPerTableGenerator this
        start local 1 // org.hibernate.engine.spi.SessionImplementor session
        start local 2 // java.lang.Object obj
         0: .line 147
            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 148
            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 149
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlStatementLogger:()Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;
         3: .line 147
            astore 3 /* statementLogger */
        start local 3 // org.hibernate.engine.jdbc.spi.SqlStatementLogger statementLogger
         4: .line 150
            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 152
            new org.hibernate.id.MultipleHiLoPerTableGenerator$1
            dup
            aload 0 /* this */
            aload 3 /* statementLogger */
            aload 4 /* statsCollector */
            invokespecial org.hibernate.id.MultipleHiLoPerTableGenerator$1.<init>:(Lorg/hibernate/id/MultipleHiLoPerTableGenerator;Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;Lorg/hibernate/engine/spi/SessionEventListenerManager;)V
            astore 5 /* work */
        start local 5 // org.hibernate.jdbc.WorkExecutorVisitable work
         6: .line 209
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.maxLo:I
            iconst_1
            if_icmpge 12
         7: .line 211
            aconst_null
            astore 6 /* value */
        start local 6 // org.hibernate.id.IntegralDataTypeHolder value
         8: .line 212
            goto 10
         9: .line 213
      StackMap locals: org.hibernate.id.MultipleHiLoPerTableGenerator org.hibernate.engine.spi.SessionImplementor java.lang.Object org.hibernate.engine.jdbc.spi.SqlStatementLogger org.hibernate.engine.spi.SessionEventListenerManager org.hibernate.jdbc.WorkExecutorVisitable org.hibernate.id.IntegralDataTypeHolder
      StackMap stack:
            aload 1 /* session */
            invokeinterface org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator:()Lorg/hibernate/engine/transaction/spi/TransactionCoordinator;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionCoordinator.getTransaction:()Lorg/hibernate/engine/transaction/spi/TransactionImplementor;
            invokeinterface org.hibernate.engine.transaction.spi.TransactionImplementor.createIsolationDelegate:()Lorg/hibernate/engine/transaction/spi/IsolationDelegate;
            aload 5 /* work */
            iconst_1
            invokeinterface org.hibernate.engine.transaction.spi.IsolationDelegate.delegateWork:(Lorg/hibernate/jdbc/WorkExecutorVisitable;Z)Ljava/lang/Object;
            checkcast org.hibernate.id.IntegralDataTypeHolder
            astore 6 /* value */
        10: .line 212
      StackMap locals:
      StackMap stack:
            aload 6 /* value */
            ifnull 9
            aload 6 /* value */
            lconst_1
            invokeinterface org.hibernate.id.IntegralDataTypeHolder.lt:(J)Z
            ifne 9
        11: .line 215
            aload 6 /* value */
            invokeinterface org.hibernate.id.IntegralDataTypeHolder.makeValue:()Ljava/lang/Number;
            areturn
        end local 6 // org.hibernate.id.IntegralDataTypeHolder value
        12: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.hiloOptimizer:Lorg/hibernate/id/enhanced/LegacyHiLoAlgorithmOptimizer;
        13: .line 219
            new org.hibernate.id.MultipleHiLoPerTableGenerator$2
            dup
            aload 0 /* this */
            aload 1 /* session */
            aload 5 /* work */
            invokespecial org.hibernate.id.MultipleHiLoPerTableGenerator$2.<init>:(Lorg/hibernate/id/MultipleHiLoPerTableGenerator;Lorg/hibernate/engine/spi/SessionImplementor;Lorg/hibernate/jdbc/WorkExecutorVisitable;)V
        14: .line 218
            invokevirtual org.hibernate.id.enhanced.LegacyHiLoAlgorithmOptimizer.generate:(Lorg/hibernate/id/enhanced/AccessCallback;)Ljava/io/Serializable;
            areturn
        end local 5 // org.hibernate.jdbc.WorkExecutorVisitable work
        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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            0   15     1          session  Lorg/hibernate/engine/spi/SessionImplementor;
            0   15     2              obj  Ljava/lang/Object;
            4   15     3  statementLogger  Lorg/hibernate/engine/jdbc/spi/SqlStatementLogger;
            5   15     4   statsCollector  Lorg/hibernate/engine/spi/SessionEventListenerManager;
            6   15     5             work  Lorg/hibernate/jdbc/WorkExecutorVisitable<Lorg/hibernate/id/IntegralDataTypeHolder;>;
            8   12     6            value  Lorg/hibernate/id/IntegralDataTypeHolder;
    MethodParameters:
         Name  Flags
      session  final
      obj      

  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.MultipleHiLoPerTableGenerator 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 240
            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 242
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementStart:()V
         2: .line 243
            aload 1 /* connection */
            aload 2 /* sql */
            invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
            astore 6
         3: .line 246
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementEnd:()V
         4: .line 243
            aload 6
            areturn
         5: .line 245
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         6: .line 246
            aload 4 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcPrepareStatementEnd:()V
         7: .line 247
            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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            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.MultipleHiLoPerTableGenerator this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         0: .line 252
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementStart:()V
         1: .line 253
            aload 1 /* ps */
            invokeinterface java.sql.PreparedStatement.executeUpdate:()I
            istore 4
         2: .line 256
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         3: .line 253
            iload 4
            ireturn
         4: .line 255
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 256
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         6: .line 257
            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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            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.MultipleHiLoPerTableGenerator this
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // org.hibernate.engine.spi.SessionEventListenerManager statsCollector
         0: .line 263
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementStart:()V
         1: .line 264
            aload 1 /* ps */
            invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
            astore 4
         2: .line 267
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         3: .line 264
            aload 4
            areturn
         4: .line 266
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 267
            aload 2 /* statsCollector */
            invokeinterface org.hibernate.engine.spi.SessionEventListenerManager.jdbcExecuteStatementEnd:()V
         6: .line 268
            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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            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 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=6, locals=7, args_size=4
        start local 0 // org.hibernate.id.MultipleHiLoPerTableGenerator 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 272
            aload 2 /* params */
            ldc "identifier_normalizer"
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cfg.ObjectNameNormalizer
            astore 4 /* normalizer */
        start local 4 // org.hibernate.cfg.ObjectNameNormalizer normalizer
         1: .line 274
            aload 0 /* this */
            aload 4 /* normalizer */
            ldc "table"
            aload 2 /* params */
            ldc "hibernate_sequences"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
         2: .line 275
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 11
         3: .line 276
            aload 0 /* this */
            aload 3 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
         4: .line 277
            aload 3 /* dialect */
         5: .line 278
            aload 4 /* normalizer */
            aload 2 /* 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;
         6: .line 277
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* schemaName */
        start local 5 // java.lang.String schemaName
         7: .line 280
            aload 3 /* dialect */
         8: .line 281
            aload 4 /* normalizer */
            aload 2 /* 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;
         9: .line 280
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* catalogName */
        start local 6 // java.lang.String catalogName
        10: .line 283
            aload 0 /* this */
            aload 6 /* catalogName */
            aload 5 /* schemaName */
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokestatic org.hibernate.mapping.Table.qualify:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
        end local 6 // java.lang.String catalogName
        end local 5 // java.lang.String schemaName
        11: .line 290
      StackMap locals: org.hibernate.cfg.ObjectNameNormalizer
      StackMap stack:
            aload 0 /* this */
            aload 3 /* dialect */
        12: .line 291
            aload 4 /* normalizer */
        13: .line 292
            ldc "primary_key_column"
            aload 2 /* params */
            ldc "sequence_name"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
        14: .line 291
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 290
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.pkColumnName:Ljava/lang/String;
        16: .line 295
            aload 0 /* this */
            aload 3 /* dialect */
        17: .line 296
            aload 4 /* normalizer */
        18: .line 297
            ldc "value_column"
            aload 2 /* params */
            ldc "sequence_next_hi_value"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
        19: .line 296
            invokevirtual org.hibernate.cfg.ObjectNameNormalizer.normalizeIdentifierQuoting:(Ljava/lang/String;)Ljava/lang/String;
        20: .line 295
            invokevirtual org.hibernate.dialect.Dialect.quote:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.valueColumnName:Ljava/lang/String;
        21: .line 300
            aload 0 /* this */
            ldc "primary_key_length"
            aload 2 /* params */
            sipush 255
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.keySize:I
        22: .line 301
            ldc "primary_key_value"
            aload 2 /* params */
            aload 2 /* params */
            ldc "target_table"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getString:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* keyValue */
        start local 5 // java.lang.String keyValue
        23: .line 303
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "select "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 304
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 305
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 306
            aload 3 /* dialect */
            getstatic org.hibernate.LockMode.PESSIMISTIC_WRITE:Lorg/hibernate/LockMode;
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.appendLockHint:(Lorg/hibernate/LockMode;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 307
            ldc " where "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.pkColumnName: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 5 /* keyValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 308
            aload 3 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.getForUpdateString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 303
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.query:Ljava/lang/String;
        30: .line 310
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "update "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        31: .line 311
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 312
            ldc " set "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 313
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 314
            ldc " = ? where "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 315
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.valueColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 316
            ldc " = ? and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 317
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.pkColumnName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 318
            ldc " = '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 319
            aload 5 /* keyValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        40: .line 320
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        41: .line 310
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.update:Ljava/lang/String;
        42: .line 322
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "insert into "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.tableName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        43: .line 323
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.pkColumnName: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.MultipleHiLoPerTableGenerator.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;
        44: .line 324
            ldc "values('"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* keyValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "', ?)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 322
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.insert:Ljava/lang/String;
        46: .line 328
            aload 0 /* this */
            ldc "max_lo"
            aload 2 /* params */
            sipush 32767
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.maxLo:I
        47: .line 329
            aload 0 /* this */
            aload 1 /* type */
            invokeinterface org.hibernate.type.Type.getReturnedClass:()Ljava/lang/Class;
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.returnClass:Ljava/lang/Class;
        48: .line 331
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.maxLo:I
            iconst_1
            if_icmplt 50
        49: .line 332
            aload 0 /* this */
            new org.hibernate.id.enhanced.LegacyHiLoAlgorithmOptimizer
            dup
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.returnClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.hibernate.id.MultipleHiLoPerTableGenerator.maxLo:I
            invokespecial org.hibernate.id.enhanced.LegacyHiLoAlgorithmOptimizer.<init>:(Ljava/lang/Class;I)V
            putfield org.hibernate.id.MultipleHiLoPerTableGenerator.hiloOptimizer:Lorg/hibernate/id/enhanced/LegacyHiLoAlgorithmOptimizer;
        50: .line 334
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 5 // java.lang.String keyValue
        end local 4 // org.hibernate.cfg.ObjectNameNormalizer normalizer
        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.MultipleHiLoPerTableGenerator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   51     0         this  Lorg/hibernate/id/MultipleHiLoPerTableGenerator;
            0   51     1         type  Lorg/hibernate/type/Type;
            0   51     2       params  Ljava/util/Properties;
            0   51     3      dialect  Lorg/hibernate/dialect/Dialect;
            1   51     4   normalizer  Lorg/hibernate/cfg/ObjectNameNormalizer;
            7   11     5   schemaName  Ljava/lang/String;
           10   11     6  catalogName  Ljava/lang/String;
           23   51     5     keyValue  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      type     
      params   
      dialect  
}
SourceFile: "MultipleHiLoPerTableGenerator.java"
NestMembers:
  org.hibernate.id.MultipleHiLoPerTableGenerator$1  org.hibernate.id.MultipleHiLoPerTableGenerator$2
InnerClasses:
  org.hibernate.id.MultipleHiLoPerTableGenerator$1
  org.hibernate.id.MultipleHiLoPerTableGenerator$2