public class org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory<K, V> implements org.terracotta.offheapstore.util.Factory<org.terracotta.offheapstore.pinning.PinnableSegment<K, V>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory
  super_class: java.lang.Object
{
  private final org.terracotta.offheapstore.util.Factory<? extends org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine<? super K, ? super V>> storageEngineFactory;
    descriptor: Lorg/terracotta/offheapstore/util/Factory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/terracotta/offheapstore/util/Factory<+Lorg/terracotta/offheapstore/disk/persistent/PersistentStorageEngine<-TK;-TV;>;>;

  private final org.terracotta.offheapstore.disk.paging.MappedPageSource tableSource;
    descriptor: Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor<? super K, ? super V> evictionAdvisor;
    descriptor: Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<-TK;-TV;>;

  private final org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener<K, V> evictionListener;
    descriptor: Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener<TK;TV;>;

  private final boolean bootstrap;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.terracotta.offheapstore.disk.paging.MappedPageSource, org.terracotta.offheapstore.util.Factory<? extends org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine<? super K, ? super V>>, int, org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor<? super K, ? super V>, org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener<K, V>, );
    descriptor: (Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;Lorg/terracotta/offheapstore/util/Factory;ILorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory this
        start local 1 // org.terracotta.offheapstore.disk.paging.MappedPageSource source
        start local 2 // org.terracotta.offheapstore.util.Factory storageEngineFactory
        start local 3 // int initialTableSize
        start local 4 // org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor evictionAdvisor
        start local 5 // org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener evictionListener
        start local 6 // boolean bootstrap
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            aload 2 /* storageEngineFactory */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.storageEngineFactory:Lorg/terracotta/offheapstore/util/Factory;
         2: .line 55
            aload 0 /* this */
            aload 1 /* source */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.tableSource:Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;
         3: .line 56
            aload 0 /* this */
            iload 3 /* initialTableSize */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.tableSize:I
         4: .line 57
            aload 0 /* this */
            aload 4 /* evictionAdvisor */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
         5: .line 58
            aload 0 /* this */
            aload 5 /* evictionListener */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.evictionListener:Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;
         6: .line 59
            aload 0 /* this */
            iload 6 /* bootstrap */
            putfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.bootstrap:Z
         7: .line 60
            return
        end local 6 // boolean bootstrap
        end local 5 // org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener evictionListener
        end local 4 // org.ehcache.impl.internal.store.offheap.SwitchableEvictionAdvisor evictionAdvisor
        end local 3 // int initialTableSize
        end local 2 // org.terracotta.offheapstore.util.Factory storageEngineFactory
        end local 1 // org.terracotta.offheapstore.disk.paging.MappedPageSource source
        end local 0 // org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lorg/ehcache/impl/internal/store/disk/factories/EhcachePersistentSegmentFactory<TK;TV;>;
            0    8     1                source  Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;
            0    8     2  storageEngineFactory  Lorg/terracotta/offheapstore/util/Factory<+Lorg/terracotta/offheapstore/disk/persistent/PersistentStorageEngine<-TK;-TV;>;>;
            0    8     3      initialTableSize  I
            0    8     4       evictionAdvisor  Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<-TK;-TV;>;
            0    8     5      evictionListener  Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener<TK;TV;>;
            0    8     6             bootstrap  Z
    Signature: (Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;Lorg/terracotta/offheapstore/util/Factory<+Lorg/terracotta/offheapstore/disk/persistent/PersistentStorageEngine<-TK;-TV;>;>;ILorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor<-TK;-TV;>;Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener<TK;TV;>;Z)V
    MethodParameters:
                      Name  Flags
      source                
      storageEngineFactory  
      initialTableSize      
      evictionAdvisor       
      evictionListener      
      bootstrap             

  public org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment<K, V> newInstance();
    descriptor: ()Lorg/ehcache/impl/internal/store/disk/factories/EhcachePersistentSegmentFactory$EhcachePersistentSegment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory this
         0: .line 63
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.storageEngineFactory:Lorg/terracotta/offheapstore/util/Factory;
            invokeinterface org.terracotta.offheapstore.util.Factory.newInstance:()Ljava/lang/Object;
            checkcast org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine
            astore 1 /* storageEngine */
        start local 1 // org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine storageEngine
         1: .line 65
            new org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment
            dup
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.tableSource:Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;
            aload 1 /* storageEngine */
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.tableSize:I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.bootstrap:Z
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.evictionListener:Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;
            invokespecial org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment.<init>:(Lorg/terracotta/offheapstore/disk/paging/MappedPageSource;Lorg/terracotta/offheapstore/disk/persistent/PersistentStorageEngine;IZLorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener;)V
         2: areturn
         3: .line 66
      StackMap locals: org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         4: .line 67
            aload 1 /* storageEngine */
            invokeinterface org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine.destroy:()V
         5: .line 68
            aload 2 /* e */
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // org.terracotta.offheapstore.disk.persistent.PersistentStorageEngine storageEngine
        end local 0 // org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/ehcache/impl/internal/store/disk/factories/EhcachePersistentSegmentFactory<TK;TV;>;
            1    6     1  storageEngine  Lorg/terracotta/offheapstore/disk/persistent/PersistentStorageEngine<-TK;-TV;>;
            4    6     2              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Signature: ()Lorg/ehcache/impl/internal/store/disk/factories/EhcachePersistentSegmentFactory$EhcachePersistentSegment<TK;TV;>;

  public java.lang.Object newInstance();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory.newInstance:()Lorg/ehcache/impl/internal/store/disk/factories/EhcachePersistentSegmentFactory$EhcachePersistentSegment;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Lorg/terracotta/offheapstore/util/Factory<Lorg/terracotta/offheapstore/pinning/PinnableSegment<TK;TV;>;>;
SourceFile: "EhcachePersistentSegmentFactory.java"
NestMembers:
  org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment  org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment$EntrySet  org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment$EntrySet$1
InnerClasses:
  public EhcachePersistentSegment = org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory$EhcachePersistentSegment of org.ehcache.impl.internal.store.disk.factories.EhcachePersistentSegmentFactory
  public EhcacheSegment = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory
  public abstract EvictionListener = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment