public class org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability<V> implements org.terracotta.offheapstore.storage.portability.WriteBackPortability<org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability
  super_class: java.lang.Object
{
  public static final int ACCESS_TIME_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int EXPIRE_TIME_OFFSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 24

  private static final int FIELDS_OVERHEAD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  private final org.ehcache.spi.serialization.Serializer<V> serializer;
    descriptor: Lorg/ehcache/spi/serialization/Serializer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/ehcache/spi/serialization/Serializer<TV;>;

  public void <init>(org.ehcache.spi.serialization.Serializer<V>);
    descriptor: (Lorg/ehcache/spi/serialization/Serializer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // org.ehcache.spi.serialization.Serializer serializer
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            aload 1 /* serializer */
            putfield org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.serializer:Lorg/ehcache/spi/serialization/Serializer;
         2: .line 44
            return
        end local 1 // org.ehcache.spi.serialization.Serializer serializer
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0    3     1  serializer  Lorg/ehcache/spi/serialization/Serializer<TV;>;
    Signature: (Lorg/ehcache/spi/serialization/Serializer<TV;>;)V
    MethodParameters:
            Name  Flags
      serializer  

  public java.nio.ByteBuffer encode(org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>);
    descriptor: (Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;)Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // org.ehcache.impl.internal.store.offheap.OffHeapValueHolder valueHolder
         0: .line 49
            aload 1 /* valueHolder */
            instanceof org.ehcache.impl.internal.store.BinaryValueHolder
            ifeq 3
            aload 1 /* valueHolder */
            checkcast org.ehcache.impl.internal.store.BinaryValueHolder
            invokeinterface org.ehcache.impl.internal.store.BinaryValueHolder.isBinaryValueAvailable:()Z
            ifeq 3
         1: .line 50
            aload 1 /* valueHolder */
            checkcast org.ehcache.impl.internal.store.BinaryValueHolder
            invokeinterface org.ehcache.impl.internal.store.BinaryValueHolder.getBinaryValue:()Ljava/nio/ByteBuffer;
            astore 2 /* serialized */
        start local 2 // java.nio.ByteBuffer serialized
         2: .line 51
            goto 4
        end local 2 // java.nio.ByteBuffer serialized
         3: .line 52
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.serializer:Lorg/ehcache/spi/serialization/Serializer;
            aload 1 /* valueHolder */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.get:()Ljava/lang/Object;
            invokeinterface org.ehcache.spi.serialization.Serializer.serialize:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
            astore 2 /* serialized */
        start local 2 // java.nio.ByteBuffer serialized
         4: .line 54
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 2 /* serialized */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 40
            iadd
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 3 /* byteBuffer */
        start local 3 // java.nio.ByteBuffer byteBuffer
         5: .line 55
            aload 3 /* byteBuffer */
            aload 1 /* valueHolder */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.getId:()J
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         6: .line 56
            aload 3 /* byteBuffer */
            aload 1 /* valueHolder */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.creationTime:()J
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         7: .line 57
            aload 3 /* byteBuffer */
            aload 1 /* valueHolder */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.lastAccessTime:()J
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         8: .line 58
            aload 3 /* byteBuffer */
            aload 1 /* valueHolder */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.expirationTime:()J
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
         9: .line 59
            aload 3 /* byteBuffer */
            lconst_0
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
        10: .line 60
            aload 3 /* byteBuffer */
            aload 2 /* serialized */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        11: .line 61
            aload 3 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        12: .line 62
            aload 3 /* byteBuffer */
            areturn
        end local 3 // java.nio.ByteBuffer byteBuffer
        end local 2 // java.nio.ByteBuffer serialized
        end local 1 // org.ehcache.impl.internal.store.offheap.OffHeapValueHolder valueHolder
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0   13     1  valueHolder  Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;
            2    3     2   serialized  Ljava/nio/ByteBuffer;
            4   13     2   serialized  Ljava/nio/ByteBuffer;
            5   13     3   byteBuffer  Ljava/nio/ByteBuffer;
    Signature: (Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;)Ljava/nio/ByteBuffer;
    MethodParameters:
             Name  Flags
      valueHolder  

  public org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V> decode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // java.nio.ByteBuffer byteBuffer
         0: .line 67
            aload 0 /* this */
            aload 1 /* byteBuffer */
            aconst_null
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.decode:(Ljava/nio/ByteBuffer;Lorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
            areturn
        end local 1 // java.nio.ByteBuffer byteBuffer
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0    1     1  byteBuffer  Ljava/nio/ByteBuffer;
    Signature: (Ljava/nio/ByteBuffer;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;
    MethodParameters:
            Name  Flags
      byteBuffer  

  public boolean equals(java.lang.Object, java.nio.ByteBuffer);
    descriptor: (Ljava/lang/Object;Ljava/nio/ByteBuffer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // java.lang.Object o
        start local 2 // java.nio.ByteBuffer byteBuffer
         0: .line 72
            aload 1 /* o */
            aload 0 /* this */
            aload 2 /* byteBuffer */
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.decode:(Ljava/nio/ByteBuffer;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.nio.ByteBuffer byteBuffer
        end local 1 // java.lang.Object o
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0    1     1           o  Ljava/lang/Object;
            0    1     2  byteBuffer  Ljava/nio/ByteBuffer;
    MethodParameters:
            Name  Flags
      o           
      byteBuffer  

  public org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V> decode(java.nio.ByteBuffer, org.terracotta.offheapstore.storage.portability.WriteContext);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=11, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // java.nio.ByteBuffer byteBuffer
        start local 2 // org.terracotta.offheapstore.storage.portability.WriteContext writeContext
         0: .line 77
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 3 /* id */
        start local 3 // long id
         1: .line 78
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 5 /* creationTime */
        start local 5 // long creationTime
         2: .line 79
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 7 /* lastAccessTime */
        start local 7 // long lastAccessTime
         3: .line 80
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 9 /* expireTime */
        start local 9 // long expireTime
         4: .line 81
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            pop2
         5: .line 82
            aload 0 /* this */
            lload 3 /* id */
            aload 1 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.serializer:Lorg/ehcache/spi/serialization/Serializer;
            lload 5 /* creationTime */
            lload 9 /* expireTime */
            lload 7 /* lastAccessTime */
            aload 2 /* writeContext */
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.createLazyOffHeapValueHolder:(JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
            areturn
        end local 9 // long expireTime
        end local 7 // long lastAccessTime
        end local 5 // long creationTime
        end local 3 // long id
        end local 2 // org.terracotta.offheapstore.storage.portability.WriteContext writeContext
        end local 1 // java.nio.ByteBuffer byteBuffer
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0    6     1      byteBuffer  Ljava/nio/ByteBuffer;
            0    6     2    writeContext  Lorg/terracotta/offheapstore/storage/portability/WriteContext;
            1    6     3              id  J
            2    6     5    creationTime  J
            3    6     7  lastAccessTime  J
            4    6     9      expireTime  J
    Signature: (Ljava/nio/ByteBuffer;Lorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;
    MethodParameters:
              Name  Flags
      byteBuffer    
      writeContext  

  protected org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V> createLazyOffHeapValueHolder(long, java.nio.ByteBuffer, org.ehcache.spi.serialization.Serializer<V>, long, long, long, org.terracotta.offheapstore.storage.portability.WriteContext);
    descriptor: (JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=13, locals=12, args_size=8
        start local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
        start local 1 // long id
        start local 3 // java.nio.ByteBuffer byteBuffer
        start local 4 // org.ehcache.spi.serialization.Serializer serializer
        start local 5 // long creationTime
        start local 7 // long expireTime
        start local 9 // long lastAccessTime
        start local 11 // org.terracotta.offheapstore.storage.portability.WriteContext writeContext
         0: .line 86
            new org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder
            dup
            lload 1 /* id */
            aload 3 /* byteBuffer */
            aload 4 /* serializer */
            lload 5 /* creationTime */
            lload 7 /* expireTime */
            lload 9 /* lastAccessTime */
            aload 11 /* writeContext */
            invokespecial org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.<init>:(JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)V
            areturn
        end local 11 // org.terracotta.offheapstore.storage.portability.WriteContext writeContext
        end local 9 // long lastAccessTime
        end local 7 // long expireTime
        end local 5 // long creationTime
        end local 4 // org.ehcache.spi.serialization.Serializer serializer
        end local 3 // java.nio.ByteBuffer byteBuffer
        end local 1 // long id
        end local 0 // org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/ehcache/impl/internal/store/offheap/portability/OffHeapValueHolderPortability<TV;>;
            0    1     1              id  J
            0    1     3      byteBuffer  Ljava/nio/ByteBuffer;
            0    1     4      serializer  Lorg/ehcache/spi/serialization/Serializer<TV;>;
            0    1     5    creationTime  J
            0    1     7      expireTime  J
            0    1     9  lastAccessTime  J
            0    1    11    writeContext  Lorg/terracotta/offheapstore/storage/portability/WriteContext;
    Signature: (JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer<TV;>;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;
    MethodParameters:
                Name  Flags
      id              
      byteBuffer      
      serializer      
      creationTime    
      expireTime      
      lastAccessTime  
      writeContext    

  public java.lang.Object decode(java.nio.ByteBuffer, org.terracotta.offheapstore.storage.portability.WriteContext);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/terracotta/offheapstore/storage/portability/WriteContext;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.decode:(Ljava/nio/ByteBuffer;Lorg/terracotta/offheapstore/storage/portability/WriteContext;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object decode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.decode:(Ljava/nio/ByteBuffer;)Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.nio.ByteBuffer encode(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/nio/ByteBuffer;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapValueHolder
            invokevirtual org.ehcache.impl.internal.store.offheap.portability.OffHeapValueHolderPortability.encode:(Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;)Ljava/nio/ByteBuffer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <V:Ljava/lang/Object;>Ljava/lang/Object;Lorg/terracotta/offheapstore/storage/portability/WriteBackPortability<Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
SourceFile: "OffHeapValueHolderPortability.java"