public class org.hibernate.id.enhanced.SequenceStructure implements org.hibernate.id.enhanced.DatabaseStructure
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.id.enhanced.SequenceStructure
  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

  private final org.hibernate.boot.model.relational.QualifiedName logicalQualifiedSequenceName;
    descriptor: Lorg/hibernate/boot/model/relational/QualifiedName;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int initialValue;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int incrementSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class numberType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private boolean applyIncrementSizeToSourceValues;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  protected java.lang.String sequenceName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 35
            ldc Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 36
            ldc Lorg/hibernate/id/enhanced/SequenceStructure;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         2: .line 34
            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.SequenceStructure.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 37
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.engine.jdbc.env.spi.JdbcEnvironment, org.hibernate.boot.model.relational.QualifiedName, int, int, java.lang.Class);
    descriptor: (Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;Lorg/hibernate/boot/model/relational/QualifiedName;IILjava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment
        start local 2 // org.hibernate.boot.model.relational.QualifiedName qualifiedSequenceName
        start local 3 // int initialValue
        start local 4 // int incrementSize
        start local 5 // java.lang.Class numberType
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 55
            aload 0 /* this */
            aload 2 /* qualifiedSequenceName */
            putfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
         2: .line 57
            aload 0 /* this */
            iload 3 /* initialValue */
            putfield org.hibernate.id.enhanced.SequenceStructure.initialValue:I
         3: .line 58
            aload 0 /* this */
            iload 4 /* incrementSize */
            putfield org.hibernate.id.enhanced.SequenceStructure.incrementSize:I
         4: .line 59
            aload 0 /* this */
            aload 5 /* numberType */
            putfield org.hibernate.id.enhanced.SequenceStructure.numberType:Ljava/lang/Class;
         5: .line 60
            return
        end local 5 // java.lang.Class numberType
        end local 4 // int incrementSize
        end local 3 // int initialValue
        end local 2 // org.hibernate.boot.model.relational.QualifiedName qualifiedSequenceName
        end local 1 // org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    6     1        jdbcEnvironment  Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            0    6     2  qualifiedSequenceName  Lorg/hibernate/boot/model/relational/QualifiedName;
            0    6     3           initialValue  I
            0    6     4          incrementSize  I
            0    6     5             numberType  Ljava/lang/Class;
    MethodParameters:
                       Name  Flags
      jdbcEnvironment        
      qualifiedSequenceName  
      initialValue           
      incrementSize          
      numberType             

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

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

  public int getTimesAccessed();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
         0: .line 74
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.accessCounter:I
            ireturn
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/SequenceStructure;

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

  public org.hibernate.id.enhanced.AccessCallback buildCallback(org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Lorg/hibernate/id/enhanced/AccessCallback;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 84
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.sql:Ljava/lang/String;
            ifnonnull 2
         1: .line 85
            new org.hibernate.AssertionFailure
            dup
            ldc "SequenceStyleGenerator's SequenceStructure was not properly initialized"
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 88
      StackMap locals:
      StackMap stack:
            new org.hibernate.id.enhanced.SequenceStructure$1
            dup
            aload 0 /* this */
            aload 1 /* session */
            invokespecial org.hibernate.id.enhanced.SequenceStructure$1.<init>:(Lorg/hibernate/id/enhanced/SequenceStructure;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
            areturn
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    3     1  session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
         Name  Flags
      session  final

  public void prepare(org.hibernate.id.enhanced.Optimizer);
    descriptor: (Lorg/hibernate/id/enhanced/Optimizer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.id.enhanced.Optimizer optimizer
         0: .line 138
            aload 0 /* this */
            aload 1 /* optimizer */
            invokeinterface org.hibernate.id.enhanced.Optimizer.applyIncrementSizeToSourceValues:()Z
            putfield org.hibernate.id.enhanced.SequenceStructure.applyIncrementSizeToSourceValues:Z
         1: .line 139
            return
        end local 1 // org.hibernate.id.enhanced.Optimizer optimizer
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    2     1  optimizer  Lorg/hibernate/id/enhanced/Optimizer;
    MethodParameters:
           Name  Flags
      optimizer  

  public void registerExportables(org.hibernate.boot.model.relational.Database);
    descriptor: (Lorg/hibernate/boot/model/relational/Database;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.boot.model.relational.Database database
         0: .line 143
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.hibernate.id.enhanced.SequenceStructure.buildSequence:(Lorg/hibernate/boot/model/relational/Database;)V
         1: .line 144
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.sequenceName:Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.getSequenceNextValString:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.SequenceStructure.sql:Ljava/lang/String;
         2: .line 145
            return
        end local 1 // org.hibernate.boot.model.relational.Database database
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    3     1  database  Lorg/hibernate/boot/model/relational/Database;
    MethodParameters:
          Name  Flags
      database  

  public java.lang.String[] sqlCreateStrings(org.hibernate.dialect.Dialect);
    descriptor: (Lorg/hibernate/dialect/Dialect;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 149
            aload 1 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.sequenceName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.initialValue:I
            aload 0 /* this */
            invokevirtual org.hibernate.id.enhanced.SequenceStructure.getSourceIncrementSize:()I
            invokevirtual org.hibernate.dialect.Dialect.getCreateSequenceStrings:(Ljava/lang/String;II)[Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    1     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=2, locals=2, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.dialect.Dialect dialect
         0: .line 154
            aload 1 /* dialect */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.sequenceName:Ljava/lang/String;
            invokevirtual org.hibernate.dialect.Dialect.getDropSequenceStrings:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.dialect.Dialect dialect
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0    1     1  dialect  Lorg/hibernate/dialect/Dialect;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
         Name  Flags
      dialect  

  public boolean isPhysicalSequence();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
         0: .line 159
            iconst_1
            ireturn
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/SequenceStructure;

  protected final int getSourceIncrementSize();
    descriptor: ()I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
         0: .line 163
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.applyIncrementSizeToSourceValues:Z
            ifeq 1
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.incrementSize:I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/id/enhanced/SequenceStructure;

  protected org.hibernate.boot.model.relational.QualifiedName getQualifiedName();
    descriptor: ()Lorg/hibernate/boot/model/relational/QualifiedName;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
         0: .line 167
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
            areturn
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/enhanced/SequenceStructure;

  protected void buildSequence(org.hibernate.boot.model.relational.Database);
    descriptor: (Lorg/hibernate/boot/model/relational/Database;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.hibernate.id.enhanced.SequenceStructure this
        start local 1 // org.hibernate.boot.model.relational.Database database
         0: .line 171
            aload 0 /* this */
            invokevirtual org.hibernate.id.enhanced.SequenceStructure.getSourceIncrementSize:()I
            istore 2 /* sourceIncrementSize */
        start local 2 // int sourceIncrementSize
         1: .line 173
            aload 1 /* database */
         2: .line 174
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
            invokeinterface org.hibernate.boot.model.relational.QualifiedName.getCatalogName:()Lorg/hibernate/boot/model/naming/Identifier;
         3: .line 175
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
            invokeinterface org.hibernate.boot.model.relational.QualifiedName.getSchemaName:()Lorg/hibernate/boot/model/naming/Identifier;
         4: .line 173
            invokevirtual org.hibernate.boot.model.relational.Database.locateNamespace:(Lorg/hibernate/boot/model/naming/Identifier;Lorg/hibernate/boot/model/naming/Identifier;)Lorg/hibernate/boot/model/relational/Namespace;
            astore 3 /* namespace */
        start local 3 // org.hibernate.boot.model.relational.Namespace namespace
         5: .line 177
            aload 3 /* namespace */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
            invokeinterface org.hibernate.boot.model.relational.QualifiedName.getObjectName:()Lorg/hibernate/boot/model/naming/Identifier;
            invokevirtual org.hibernate.boot.model.relational.Namespace.locateSequence:(Lorg/hibernate/boot/model/naming/Identifier;)Lorg/hibernate/boot/model/relational/Sequence;
            astore 4 /* sequence */
        start local 4 // org.hibernate.boot.model.relational.Sequence sequence
         6: .line 178
            aload 4 /* sequence */
            ifnull 9
         7: .line 179
            aload 4 /* sequence */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.initialValue:I
            iload 2 /* sourceIncrementSize */
            invokevirtual org.hibernate.boot.model.relational.Sequence.validate:(II)V
         8: .line 180
            goto 10
         9: .line 182
      StackMap locals: int org.hibernate.boot.model.relational.Namespace org.hibernate.boot.model.relational.Sequence
      StackMap stack:
            aload 3 /* namespace */
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.logicalQualifiedSequenceName:Lorg/hibernate/boot/model/relational/QualifiedName;
            invokeinterface org.hibernate.boot.model.relational.QualifiedName.getObjectName:()Lorg/hibernate/boot/model/naming/Identifier;
            aload 0 /* this */
            getfield org.hibernate.id.enhanced.SequenceStructure.initialValue:I
            iload 2 /* sourceIncrementSize */
            invokevirtual org.hibernate.boot.model.relational.Namespace.createSequence:(Lorg/hibernate/boot/model/naming/Identifier;II)Lorg/hibernate/boot/model/relational/Sequence;
            astore 4 /* sequence */
        10: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getQualifiedObjectNameFormatter:()Lorg/hibernate/engine/jdbc/env/spi/QualifiedObjectNameFormatter;
        11: .line 186
            aload 4 /* sequence */
            invokevirtual org.hibernate.boot.model.relational.Sequence.getName:()Lorg/hibernate/boot/model/relational/QualifiedSequenceName;
        12: .line 187
            aload 1 /* database */
            invokevirtual org.hibernate.boot.model.relational.Database.getJdbcEnvironment:()Lorg/hibernate/engine/jdbc/env/spi/JdbcEnvironment;
            invokeinterface org.hibernate.engine.jdbc.env.spi.JdbcEnvironment.getDialect:()Lorg/hibernate/dialect/Dialect;
        13: .line 185
            invokeinterface org.hibernate.engine.jdbc.env.spi.QualifiedObjectNameFormatter.format:(Lorg/hibernate/boot/model/relational/QualifiedSequenceName;Lorg/hibernate/dialect/Dialect;)Ljava/lang/String;
            putfield org.hibernate.id.enhanced.SequenceStructure.sequenceName:Ljava/lang/String;
        14: .line 189
            return
        end local 4 // org.hibernate.boot.model.relational.Sequence sequence
        end local 3 // org.hibernate.boot.model.relational.Namespace namespace
        end local 2 // int sourceIncrementSize
        end local 1 // org.hibernate.boot.model.relational.Database database
        end local 0 // org.hibernate.id.enhanced.SequenceStructure this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Lorg/hibernate/id/enhanced/SequenceStructure;
            0   15     1             database  Lorg/hibernate/boot/model/relational/Database;
            1   15     2  sourceIncrementSize  I
            5   15     3            namespace  Lorg/hibernate/boot/model/relational/Namespace;
            6   15     4             sequence  Lorg/hibernate/boot/model/relational/Sequence;
    MethodParameters:
          Name  Flags
      database  
}
SourceFile: "SequenceStructure.java"
NestMembers:
  org.hibernate.id.enhanced.SequenceStructure$1
InnerClasses:
  org.hibernate.id.enhanced.SequenceStructure$1