public class org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider extends org.ehcache.core.spi.store.AbstractWrapperStoreProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider
  super_class: org.ehcache.core.spi.store.AbstractWrapperStoreProvider
{
  private volatile org.ehcache.spi.loaderwriter.WriteBehindProvider writeBehindProvider;
    descriptor: Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
         0: .line 37
            aload 0 /* this */
            invokespecial org.ehcache.core.spi.store.AbstractWrapperStoreProvider.<init>:()V
            return
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;

  protected <K, V> org.ehcache.core.spi.store.Store<K, V> wrap(org.ehcache.core.spi.store.Store<K, V>, org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store;Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/core/spi/store/Store;
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
        start local 1 // org.ehcache.core.spi.store.Store store
        start local 2 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        start local 3 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 43
            ldc Lorg/ehcache/spi/loaderwriter/WriteBehindConfiguration;
            aload 3 /* serviceConfigs */
            invokestatic org.ehcache.core.spi.service.ServiceUtils.findSingletonAmongst:(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.ehcache.spi.loaderwriter.WriteBehindConfiguration
            astore 4 /* writeBehindConfiguration */
        start local 4 // org.ehcache.spi.loaderwriter.WriteBehindConfiguration writeBehindConfiguration
         1: .line 45
            aload 4 /* writeBehindConfiguration */
            ifnonnull 4
         2: .line 46
            new org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore
            dup
            aload 1 /* store */
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getCacheLoaderWriter:()Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.useLoaderInAtomics:()Z
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getExpiry:()Lorg/ehcache/expiry/ExpiryPolicy;
            invokespecial org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore.<init>:(Lorg/ehcache/core/spi/store/Store;Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;ZLorg/ehcache/expiry/ExpiryPolicy;)V
            astore 5 /* loaderWriterStore */
        start local 5 // org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore loaderWriterStore
         3: .line 47
            goto 6
        end local 5 // org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore loaderWriterStore
         4: .line 48
      StackMap locals: org.ehcache.spi.loaderwriter.WriteBehindConfiguration
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider.writeBehindProvider:Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getCacheLoaderWriter:()Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;
            aload 4 /* writeBehindConfiguration */
            invokeinterface org.ehcache.spi.loaderwriter.WriteBehindProvider.createWriteBehindLoaderWriter:(Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;Lorg/ehcache/spi/loaderwriter/WriteBehindConfiguration;)Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;
            astore 6 /* writeBehindLoaderWriter */
        start local 6 // org.ehcache.spi.loaderwriter.CacheLoaderWriter writeBehindLoaderWriter
         5: .line 49
            new org.ehcache.impl.internal.store.loaderwriter.LocalWriteBehindLoaderWriterStore
            dup
            aload 1 /* store */
            aload 6 /* writeBehindLoaderWriter */
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.useLoaderInAtomics:()Z
            aload 2 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getExpiry:()Lorg/ehcache/expiry/ExpiryPolicy;
            invokespecial org.ehcache.impl.internal.store.loaderwriter.LocalWriteBehindLoaderWriterStore.<init>:(Lorg/ehcache/core/spi/store/Store;Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;ZLorg/ehcache/expiry/ExpiryPolicy;)V
            astore 5 /* loaderWriterStore */
        end local 6 // org.ehcache.spi.loaderwriter.CacheLoaderWriter writeBehindLoaderWriter
        start local 5 // org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore loaderWriterStore
         6: .line 51
      StackMap locals: org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore
      StackMap stack:
            aload 5 /* loaderWriterStore */
            areturn
        end local 5 // org.ehcache.impl.internal.store.loaderwriter.LocalLoaderWriterStore loaderWriterStore
        end local 4 // org.ehcache.spi.loaderwriter.WriteBehindConfiguration writeBehindConfiguration
        end local 3 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 2 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        end local 1 // org.ehcache.core.spi.store.Store store
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    7     0                      this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;
            0    7     1                     store  Lorg/ehcache/core/spi/store/Store<TK;TV;>;
            0    7     2               storeConfig  Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
            0    7     3            serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            1    7     4  writeBehindConfiguration  Lorg/ehcache/spi/loaderwriter/WriteBehindConfiguration<*>;
            3    4     5         loaderWriterStore  Lorg/ehcache/impl/internal/store/loaderwriter/LocalLoaderWriterStore<TK;TV;>;
            6    7     5         loaderWriterStore  Lorg/ehcache/impl/internal/store/loaderwriter/LocalLoaderWriterStore<TK;TV;>;
            5    6     6   writeBehindLoaderWriter  Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter<-TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store<TK;TV;>;Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/core/spi/store/Store<TK;TV;>;
    MethodParameters:
                Name  Flags
      store           
      storeConfig     
      serviceConfigs  

  public void releaseStore(org.ehcache.core.spi.store.Store<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/Store;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
        start local 1 // org.ehcache.core.spi.store.Store resource
         0: .line 57
            aload 1 /* resource */
            instanceof org.ehcache.impl.internal.store.loaderwriter.LocalWriteBehindLoaderWriterStore
            ifeq 6
         1: .line 58
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider.writeBehindProvider:Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
            aload 1 /* resource */
            checkcast org.ehcache.impl.internal.store.loaderwriter.LocalWriteBehindLoaderWriterStore
            invokevirtual org.ehcache.impl.internal.store.loaderwriter.LocalWriteBehindLoaderWriterStore.getCacheLoaderWriter:()Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;
            invokeinterface org.ehcache.spi.loaderwriter.WriteBehindProvider.releaseWriteBehindLoaderWriter:(Lorg/ehcache/spi/loaderwriter/CacheLoaderWriter;)V
         2: .line 60
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 61
            aload 0 /* this */
            aload 1 /* resource */
            invokespecial org.ehcache.core.spi.store.AbstractWrapperStoreProvider.releaseStore:(Lorg/ehcache/core/spi/store/Store;)V
         5: .line 62
            aload 2
            athrow
         6: .line 61
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resource */
            invokespecial org.ehcache.core.spi.store.AbstractWrapperStoreProvider.releaseStore:(Lorg/ehcache/core/spi/store/Store;)V
         7: .line 63
            return
        end local 1 // org.ehcache.core.spi.store.Store resource
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;
            0    8     1  resource  Lorg/ehcache/core/spi/store/Store<**>;
      Exception table:
        from    to  target  type
           0     3       3  any
    Signature: (Lorg/ehcache/core/spi/store/Store<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  public void start(org.ehcache.spi.service.ServiceProvider<org.ehcache.spi.service.Service>);
    descriptor: (Lorg/ehcache/spi/service/ServiceProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
        start local 1 // org.ehcache.spi.service.ServiceProvider serviceProvider
         0: .line 67
            aload 0 /* this */
            aload 1 /* serviceProvider */
            invokespecial org.ehcache.core.spi.store.AbstractWrapperStoreProvider.start:(Lorg/ehcache/spi/service/ServiceProvider;)V
         1: .line 68
            aload 0 /* this */
            aload 1 /* serviceProvider */
            ldc Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
            invokeinterface org.ehcache.spi.service.ServiceProvider.getService:(Ljava/lang/Class;)Lorg/ehcache/spi/service/Service;
            checkcast org.ehcache.spi.loaderwriter.WriteBehindProvider
            putfield org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider.writeBehindProvider:Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
         2: .line 69
            return
        end local 1 // org.ehcache.spi.service.ServiceProvider serviceProvider
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;
            0    3     1  serviceProvider  Lorg/ehcache/spi/service/ServiceProvider<Lorg/ehcache/spi/service/Service;>;
    Signature: (Lorg/ehcache/spi/service/ServiceProvider<Lorg/ehcache/spi/service/Service;>;)V
    MethodParameters:
                 Name  Flags
      serviceProvider  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
         0: .line 73
            aload 0 /* this */
            aconst_null
            putfield org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider.writeBehindProvider:Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;
         1: .line 74
            aload 0 /* this */
            invokespecial org.ehcache.core.spi.store.AbstractWrapperStoreProvider.stop:()V
         2: .line 75
            return
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;

  public int rank(java.util.Set<org.ehcache.config.ResourceType<?>>, java.util.Collection<org.ehcache.spi.service.ServiceConfiguration<?, ?>>);
    descriptor: (Ljava/util/Set;Ljava/util/Collection;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
        start local 1 // java.util.Set resourceTypes
        start local 2 // java.util.Collection serviceConfigs
         0: .line 79
            new java.lang.UnsupportedOperationException
            dup
            ldc "Its a Wrapper store provider, does not support regular ranking"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.util.Collection serviceConfigs
        end local 1 // java.util.Set resourceTypes
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;
            0    1     1   resourceTypes  Ljava/util/Set<Lorg/ehcache/config/ResourceType<*>;>;
            0    1     2  serviceConfigs  Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;
    Signature: (Ljava/util/Set<Lorg/ehcache/config/ResourceType<*>;>;Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;)I
    MethodParameters:
                Name  Flags
      resourceTypes   
      serviceConfigs  

  public int wrapperStoreRank(java.util.Collection<org.ehcache.spi.service.ServiceConfiguration<?, ?>>);
    descriptor: (Ljava/util/Collection;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
        start local 1 // java.util.Collection serviceConfigs
         0: .line 84
            ldc Lorg/ehcache/spi/loaderwriter/CacheLoaderWriterConfiguration;
            aload 1 /* serviceConfigs */
            invokestatic org.ehcache.core.spi.service.ServiceUtils.findSingletonAmongst:(Ljava/lang/Class;Ljava/util/Collection;)Ljava/lang/Object;
            checkcast org.ehcache.spi.loaderwriter.CacheLoaderWriterConfiguration
            astore 2 /* loaderWriterConfiguration */
        start local 2 // org.ehcache.spi.loaderwriter.CacheLoaderWriterConfiguration loaderWriterConfiguration
         1: .line 85
            aload 2 /* loaderWriterConfiguration */
            ifnonnull 3
         2: .line 86
            iconst_0
            ireturn
         3: .line 88
      StackMap locals: org.ehcache.spi.loaderwriter.CacheLoaderWriterConfiguration
      StackMap stack:
            iconst_2
            ireturn
        end local 2 // org.ehcache.spi.loaderwriter.CacheLoaderWriterConfiguration loaderWriterConfiguration
        end local 1 // java.util.Collection serviceConfigs
        end local 0 // org.ehcache.impl.internal.store.loaderwriter.LoaderWriterStoreProvider this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    4     0                       this  Lorg/ehcache/impl/internal/store/loaderwriter/LoaderWriterStoreProvider;
            0    4     1             serviceConfigs  Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;
            1    4     2  loaderWriterConfiguration  Lorg/ehcache/spi/loaderwriter/CacheLoaderWriterConfiguration<*>;
    Signature: (Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;)I
    MethodParameters:
                Name  Flags
      serviceConfigs  
}
SourceFile: "LoaderWriterStoreProvider.java"
InnerClasses:
  public abstract Configuration = org.ehcache.core.spi.store.Store$Configuration of org.ehcache.core.spi.store.Store
    RuntimeVisibleAnnotations: 
      org.ehcache.spi.service.ServiceDependencies(value = {Lorg/ehcache/spi/loaderwriter/CacheLoaderWriterProvider;, Lorg/ehcache/spi/loaderwriter/WriteBehindProvider;})