public class org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl implements org.hibernate.engine.jdbc.dialect.spi.DialectFactory, org.hibernate.service.spi.ServiceRegistryAwareService
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl
  super_class: java.lang.Object
{
  private org.hibernate.boot.registry.selector.spi.StrategySelector strategySelector;
    descriptor: Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.jdbc.dialect.spi.DialectResolver dialectResolver;
    descriptor: Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
    flags: (0x0002) ACC_PRIVATE

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

  public void injectServices(org.hibernate.service.spi.ServiceRegistryImplementor);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
         0: .line 51
            aload 0 /* this */
            aload 1 /* serviceRegistry */
            ldc Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.boot.registry.selector.spi.StrategySelector
            putfield org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.strategySelector:Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
         1: .line 52
            aload 0 /* this */
            aload 1 /* serviceRegistry */
            ldc Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.engine.jdbc.dialect.spi.DialectResolver
            putfield org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.dialectResolver:Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
         2: .line 53
            return
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
        end local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/hibernate/engine/jdbc/dialect/internal/DialectFactoryImpl;
            0    3     1  serviceRegistry  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    MethodParameters:
                 Name  Flags
      serviceRegistry  

  public void setDialectResolver(org.hibernate.engine.jdbc.dialect.spi.DialectResolver);
    descriptor: (Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
        start local 1 // org.hibernate.engine.jdbc.dialect.spi.DialectResolver dialectResolver
         0: .line 61
            aload 0 /* this */
            aload 1 /* dialectResolver */
            putfield org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.dialectResolver:Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
         1: .line 62
            return
        end local 1 // org.hibernate.engine.jdbc.dialect.spi.DialectResolver dialectResolver
        end local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/engine/jdbc/dialect/internal/DialectFactoryImpl;
            0    2     1  dialectResolver  Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
    MethodParameters:
                 Name  Flags
      dialectResolver  

  public org.hibernate.dialect.Dialect buildDialect(java.util.Map, org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource);
    descriptor: (Ljava/util/Map;Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfoSource;)Lorg/hibernate/dialect/Dialect;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
        start local 1 // java.util.Map configValues
        start local 2 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource resolutionInfoSource
         0: .line 66
            aload 1 /* configValues */
            ldc "hibernate.dialect"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* dialectName */
        start local 3 // java.lang.String dialectName
         1: .line 67
            aload 3 /* dialectName */
            invokestatic org.hibernate.annotations.common.util.StringHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 3
         2: .line 68
            aload 0 /* this */
            aload 3 /* dialectName */
            invokevirtual org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect:(Ljava/lang/String;)Lorg/hibernate/dialect/Dialect;
            areturn
         3: .line 71
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* resolutionInfoSource */
            invokevirtual org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect:(Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfoSource;)Lorg/hibernate/dialect/Dialect;
            areturn
        end local 3 // java.lang.String dialectName
        end local 2 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource resolutionInfoSource
        end local 1 // java.util.Map configValues
        end local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lorg/hibernate/engine/jdbc/dialect/internal/DialectFactoryImpl;
            0    4     1          configValues  Ljava/util/Map;
            0    4     2  resolutionInfoSource  Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfoSource;
            1    4     3           dialectName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                      Name  Flags
      configValues          
      resolutionInfoSource  

  private org.hibernate.dialect.Dialect constructDialect(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/dialect/Dialect;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
        start local 1 // java.lang.String dialectName
         0: .line 78
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.strategySelector:Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
            ldc Lorg/hibernate/dialect/Dialect;
            aload 1 /* dialectName */
            invokeinterface org.hibernate.boot.registry.selector.spi.StrategySelector.resolveStrategy:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.dialect.Dialect
            astore 2 /* dialect */
        start local 2 // org.hibernate.dialect.Dialect dialect
         1: .line 79
            aload 2 /* dialect */
            ifnonnull 3
         2: .line 80
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to construct requested dialect ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* dialectName */
            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;
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 82
      StackMap locals: org.hibernate.dialect.Dialect
      StackMap stack:
            aload 2 /* dialect */
         4: areturn
        end local 2 // org.hibernate.dialect.Dialect dialect
         5: .line 84
      StackMap locals: org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl java.lang.String
      StackMap stack: org.hibernate.HibernateException
            astore 3 /* e */
        start local 3 // org.hibernate.HibernateException e
         6: .line 85
            aload 3 /* e */
            athrow
        end local 3 // org.hibernate.HibernateException e
         7: .line 87
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 88
            new org.hibernate.HibernateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to construct requested dialect ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* dialectName */
            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;
            aload 3 /* e */
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        end local 1 // java.lang.String dialectName
        end local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/hibernate/engine/jdbc/dialect/internal/DialectFactoryImpl;
            0    9     1  dialectName  Ljava/lang/String;
            1    5     2      dialect  Lorg/hibernate/dialect/Dialect;
            6    7     3            e  Lorg/hibernate/HibernateException;
            8    9     3            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     4       5  Class org.hibernate.HibernateException
           0     4       7  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      dialectName  

  private org.hibernate.dialect.Dialect determineDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource);
    descriptor: (Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfoSource;)Lorg/hibernate/dialect/Dialect;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
        start local 1 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource resolutionInfoSource
         0: .line 103
            aload 1 /* resolutionInfoSource */
            ifnonnull 2
         1: .line 104
            new org.hibernate.HibernateException
            dup
            ldc "Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* resolutionInfoSource */
            invokeinterface org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource.getDialectResolutionInfo:()Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfo;
            astore 2 /* info */
        start local 2 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info
         3: .line 108
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.dialectResolver:Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolver;
            aload 2 /* info */
            invokeinterface org.hibernate.engine.jdbc.dialect.spi.DialectResolver.resolveDialect:(Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfo;)Lorg/hibernate/dialect/Dialect;
            astore 3 /* dialect */
        start local 3 // org.hibernate.dialect.Dialect dialect
         4: .line 110
            aload 3 /* dialect */
            ifnonnull 11
         5: .line 111
            new org.hibernate.HibernateException
            dup
         6: .line 112
            new java.lang.StringBuilder
            dup
            ldc "Unable to determine Dialect to use [name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* info */
            invokeinterface org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo.getDatabaseName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 113
            ldc ", majorVersion="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* info */
            invokeinterface org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo.getDatabaseMajorVersion:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 114
            ldc "]; user must register resolver or explicitly set 'hibernate.dialect'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 112
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 111
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 118
      StackMap locals: org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo org.hibernate.dialect.Dialect
      StackMap stack:
            aload 3 /* dialect */
            areturn
        end local 3 // org.hibernate.dialect.Dialect dialect
        end local 2 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info
        end local 1 // org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfoSource resolutionInfoSource
        end local 0 // org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0                  this  Lorg/hibernate/engine/jdbc/dialect/internal/DialectFactoryImpl;
            0   12     1  resolutionInfoSource  Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfoSource;
            3   12     2                  info  Lorg/hibernate/engine/jdbc/dialect/spi/DialectResolutionInfo;
            4   12     3               dialect  Lorg/hibernate/dialect/Dialect;
    MethodParameters:
                      Name  Flags
      resolutionInfoSource  
}
SourceFile: "DialectFactoryImpl.java"