public class org.hibernate.service.internal.SessionFactoryServiceRegistryImpl extends org.hibernate.service.internal.AbstractServiceRegistryImpl implements org.hibernate.service.spi.SessionFactoryServiceRegistry, org.hibernate.service.spi.SessionFactoryServiceInitiatorContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.service.internal.SessionFactoryServiceRegistryImpl
  super_class: org.hibernate.service.internal.AbstractServiceRegistryImpl
{
  private final org.hibernate.boot.spi.SessionFactoryOptions sessionFactoryOptions;
    descriptor: Lorg/hibernate/boot/spi/SessionFactoryOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.hibernate.event.service.spi.EventListenerRegistry cachedEventListenerRegistry;
    descriptor: Lorg/hibernate/event/service/spi/EventListenerRegistry;
    flags: (0x0002) ACC_PRIVATE

  private final org.hibernate.boot.spi.BootstrapContext bootstrapContext;
    descriptor: Lorg/hibernate/boot/spi/BootstrapContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.hibernate.service.spi.ServiceRegistryImplementor, java.util.List<org.hibernate.service.spi.SessionFactoryServiceInitiator>, java.util.List<org.hibernate.service.internal.ProvidedService>, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.boot.spi.BootstrapContext, org.hibernate.boot.spi.SessionFactoryOptions);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;Ljava/util/List;Ljava/util/List;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/boot/spi/BootstrapContext;Lorg/hibernate/boot/spi/SessionFactoryOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=9, args_size=7
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor parent
        start local 2 // java.util.List initiators
        start local 3 // java.util.List providedServices
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        start local 5 // org.hibernate.boot.spi.BootstrapContext bootstrapContext
        start local 6 // org.hibernate.boot.spi.SessionFactoryOptions sessionFactoryOptions
         0: .line 46
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial org.hibernate.service.internal.AbstractServiceRegistryImpl.<init>:(Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
         1: .line 48
            aload 0 /* this */
            aload 4 /* sessionFactory */
            putfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         2: .line 49
            aload 0 /* this */
            aload 6 /* sessionFactoryOptions */
            putfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.sessionFactoryOptions:Lorg/hibernate/boot/spi/SessionFactoryOptions;
         3: .line 50
            aload 0 /* this */
            aload 5 /* bootstrapContext */
            putfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.bootstrapContext:Lorg/hibernate/boot/spi/BootstrapContext;
         4: .line 53
            aload 2 /* initiators */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 7
      StackMap locals: org.hibernate.service.internal.SessionFactoryServiceRegistryImpl org.hibernate.service.spi.ServiceRegistryImplementor java.util.List java.util.List org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.boot.spi.BootstrapContext org.hibernate.boot.spi.SessionFactoryOptions top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.service.spi.SessionFactoryServiceInitiator
            astore 7 /* initiator */
        start local 7 // org.hibernate.service.spi.SessionFactoryServiceInitiator initiator
         6: .line 55
            aload 0 /* this */
            aload 7 /* initiator */
            invokevirtual org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.createServiceBinding:(Lorg/hibernate/service/spi/ServiceInitiator;)V
        end local 7 // org.hibernate.service.spi.SessionFactoryServiceInitiator initiator
         7: .line 53
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 58
            aload 3 /* providedServices */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.service.internal.ProvidedService
            astore 7 /* providedService */
        start local 7 // org.hibernate.service.internal.ProvidedService providedService
        10: .line 59
            aload 0 /* this */
            aload 7 /* providedService */
            invokevirtual org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.createServiceBinding:(Lorg/hibernate/service/internal/ProvidedService;)V
        end local 7 // org.hibernate.service.internal.ProvidedService providedService
        11: .line 58
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 62
            aconst_null
            astore 5 /* bootstrapContext */
        13: .line 63
            return
        end local 6 // org.hibernate.boot.spi.SessionFactoryOptions sessionFactoryOptions
        end local 5 // org.hibernate.boot.spi.BootstrapContext bootstrapContext
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        end local 3 // java.util.List providedServices
        end local 2 // java.util.List initiators
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor parent
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   14     0                   this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;
            0   14     1                 parent  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            0   14     2             initiators  Ljava/util/List<Lorg/hibernate/service/spi/SessionFactoryServiceInitiator;>;
            0   14     3       providedServices  Ljava/util/List<Lorg/hibernate/service/internal/ProvidedService;>;
            0   14     4         sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   14     5       bootstrapContext  Lorg/hibernate/boot/spi/BootstrapContext;
            0   14     6  sessionFactoryOptions  Lorg/hibernate/boot/spi/SessionFactoryOptions;
            6    7     7              initiator  Lorg/hibernate/service/spi/SessionFactoryServiceInitiator;
           10   11     7        providedService  Lorg/hibernate/service/internal/ProvidedService;
    Signature: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;Ljava/util/List<Lorg/hibernate/service/spi/SessionFactoryServiceInitiator;>;Ljava/util/List<Lorg/hibernate/service/internal/ProvidedService;>;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/boot/spi/BootstrapContext;Lorg/hibernate/boot/spi/SessionFactoryOptions;)V
    MethodParameters:
                       Name  Flags
      parent                 
      initiators             
      providedServices       
      sessionFactory         
      bootstrapContext       
      sessionFactoryOptions  

  public <R extends org.hibernate.service.Service> R initiateService(org.hibernate.service.spi.ServiceInitiator<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceInitiator;)Lorg/hibernate/service/Service;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceInitiator serviceInitiator
         0: .line 67
            aload 1 /* serviceInitiator */
            checkcast org.hibernate.service.spi.SessionFactoryServiceInitiator
            astore 2 /* sessionFactoryServiceInitiator */
        start local 2 // org.hibernate.service.spi.SessionFactoryServiceInitiator sessionFactoryServiceInitiator
         1: .line 68
            aload 2 /* sessionFactoryServiceInitiator */
            aload 0 /* this */
            invokeinterface org.hibernate.service.spi.SessionFactoryServiceInitiator.initiateService:(Lorg/hibernate/service/spi/SessionFactoryServiceInitiatorContext;)Lorg/hibernate/service/Service;
            areturn
        end local 2 // org.hibernate.service.spi.SessionFactoryServiceInitiator sessionFactoryServiceInitiator
        end local 1 // org.hibernate.service.spi.ServiceInitiator serviceInitiator
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0    2     0                            this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;
            0    2     1                serviceInitiator  Lorg/hibernate/service/spi/ServiceInitiator<TR;>;
            1    2     2  sessionFactoryServiceInitiator  Lorg/hibernate/service/spi/SessionFactoryServiceInitiator<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceInitiator<TR;>;)TR;
    MethodParameters:
                  Name  Flags
      serviceInitiator  

  public <R extends org.hibernate.service.Service> void configureService(org.hibernate.service.spi.ServiceBinding<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding serviceBinding
         0: .line 73
            ldc Lorg/hibernate/service/spi/Configurable;
            aload 1 /* serviceBinding */
            invokevirtual org.hibernate.service.spi.ServiceBinding.getService:()Lorg/hibernate/service/Service;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 74
            aload 1 /* serviceBinding */
            invokevirtual org.hibernate.service.spi.ServiceBinding.getService:()Lorg/hibernate/service/Service;
            checkcast org.hibernate.service.spi.Configurable
            aload 0 /* this */
            ldc Lorg/hibernate/engine/config/spi/ConfigurationService;
            invokevirtual org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.engine.config.spi.ConfigurationService
            invokeinterface org.hibernate.engine.config.spi.ConfigurationService.getSettings:()Ljava/util/Map;
            invokeinterface org.hibernate.service.spi.Configurable.configure:(Ljava/util/Map;)V
         2: .line 76
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.service.spi.ServiceBinding serviceBinding
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;
            0    3     1  serviceBinding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceBinding<TR;>;)V
    MethodParameters:
                Name  Flags
      serviceBinding  

  public org.hibernate.boot.spi.BootstrapContext getBootstrapContext();
    descriptor: ()Lorg/hibernate/boot/spi/BootstrapContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
         0: .line 80
            aload 0 /* this */
            getfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.bootstrapContext:Lorg/hibernate/boot/spi/BootstrapContext;
            areturn
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;

  public org.hibernate.engine.spi.SessionFactoryImplementor getSessionFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
         0: .line 85
            aload 0 /* this */
            getfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;

  public org.hibernate.boot.spi.SessionFactoryOptions getSessionFactoryOptions();
    descriptor: ()Lorg/hibernate/boot/spi/SessionFactoryOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
         0: .line 90
            aload 0 /* this */
            getfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.sessionFactoryOptions:Lorg/hibernate/boot/spi/SessionFactoryOptions;
            areturn
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;

  public org.hibernate.service.spi.ServiceRegistryImplementor getServiceRegistry();
    descriptor: ()Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
         0: .line 95
            aload 0 /* this */
            areturn
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;

  public <R extends org.hibernate.service.Service> R getService(java.lang.Class<R>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/service/Service;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
        start local 1 // java.lang.Class serviceRole
         0: .line 102
            aload 1 /* serviceRole */
            ldc Lorg/hibernate/event/service/spi/EventListenerRegistry;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 103
            aload 0 /* this */
            getfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.cachedEventListenerRegistry:Lorg/hibernate/event/service/spi/EventListenerRegistry;
            ifnonnull 3
         2: .line 104
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* serviceRole */
            invokespecial org.hibernate.service.internal.AbstractServiceRegistryImpl.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.event.service.spi.EventListenerRegistry
            putfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.cachedEventListenerRegistry:Lorg/hibernate/event/service/spi/EventListenerRegistry;
         3: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.cachedEventListenerRegistry:Lorg/hibernate/event/service/spi/EventListenerRegistry;
            areturn
         4: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* serviceRole */
            invokespecial org.hibernate.service.internal.AbstractServiceRegistryImpl.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            areturn
        end local 1 // java.lang.Class serviceRole
        end local 0 // org.hibernate.service.internal.SessionFactoryServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/hibernate/service/internal/SessionFactoryServiceRegistryImpl;
            0    5     1  serviceRole  Ljava/lang/Class<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Ljava/lang/Class<TR;>;)TR;
    MethodParameters:
             Name  Flags
      serviceRole  
}
SourceFile: "SessionFactoryServiceRegistryImpl.java"