class org.h2.util.CacheSecondLevel implements org.h2.util.Cache
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.h2.util.CacheSecondLevel
  super_class: java.lang.Object
{
  private final org.h2.util.Cache baseCache;
    descriptor: Lorg/h2/util/Cache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.Integer, org.h2.util.CacheObject> map;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lorg/h2/util/CacheObject;>;

  void <init>(org.h2.util.Cache, java.util.Map<java.lang.Integer, org.h2.util.CacheObject>);
    descriptor: (Lorg/h2/util/Cache;Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // org.h2.util.Cache cache
        start local 2 // java.util.Map map
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 21
            aload 0 /* this */
            aload 1 /* cache */
            putfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
         2: .line 22
            aload 0 /* this */
            aload 2 /* map */
            putfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
         3: .line 23
            return
        end local 2 // java.util.Map map
        end local 1 // org.h2.util.Cache cache
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/h2/util/CacheSecondLevel;
            0    4     1  cache  Lorg/h2/util/Cache;
            0    4     2    map  Ljava/util/Map<Ljava/lang/Integer;Lorg/h2/util/CacheObject;>;
    Signature: (Lorg/h2/util/Cache;Ljava/util/Map<Ljava/lang/Integer;Lorg/h2/util/CacheObject;>;)V
    MethodParameters:
       Name  Flags
      cache  
      map    

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.CacheSecondLevel this
         0: .line 27
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         1: .line 28
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            invokeinterface org.h2.util.Cache.clear:()V
         2: .line 29
            return
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/util/CacheSecondLevel;

  public org.h2.util.CacheObject find(int);
    descriptor: (I)Lorg/h2/util/CacheObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // int pos
         0: .line 33
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            iload 1 /* pos */
            invokeinterface org.h2.util.Cache.find:(I)Lorg/h2/util/CacheObject;
            astore 2 /* ret */
        start local 2 // org.h2.util.CacheObject ret
         1: .line 34
            aload 2 /* ret */
            ifnonnull 3
         2: .line 35
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.util.CacheObject
            astore 2 /* ret */
         3: .line 37
      StackMap locals: org.h2.util.CacheObject
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.h2.util.CacheObject ret
        end local 1 // int pos
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/util/CacheSecondLevel;
            0    4     1   pos  I
            1    4     2   ret  Lorg/h2/util/CacheObject;
    MethodParameters:
      Name  Flags
      pos   

  public org.h2.util.CacheObject get(int);
    descriptor: (I)Lorg/h2/util/CacheObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // int pos
         0: .line 42
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            iload 1 /* pos */
            invokeinterface org.h2.util.Cache.get:(I)Lorg/h2/util/CacheObject;
            astore 2 /* ret */
        start local 2 // org.h2.util.CacheObject ret
         1: .line 43
            aload 2 /* ret */
            ifnonnull 3
         2: .line 44
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.util.CacheObject
            astore 2 /* ret */
         3: .line 46
      StackMap locals: org.h2.util.CacheObject
      StackMap stack:
            aload 2 /* ret */
            areturn
        end local 2 // org.h2.util.CacheObject ret
        end local 1 // int pos
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/util/CacheSecondLevel;
            0    4     1   pos  I
            1    4     2   ret  Lorg/h2/util/CacheObject;
    MethodParameters:
      Name  Flags
      pos   

  public java.util.ArrayList<org.h2.util.CacheObject> getAllChanged();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.CacheSecondLevel this
         0: .line 51
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            invokeinterface org.h2.util.Cache.getAllChanged:()Ljava/util/ArrayList;
            areturn
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/util/CacheSecondLevel;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/util/CacheObject;>;

  public int getMaxMemory();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.CacheSecondLevel this
         0: .line 56
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            invokeinterface org.h2.util.Cache.getMaxMemory:()I
            ireturn
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/util/CacheSecondLevel;

  public int getMemory();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.CacheSecondLevel this
         0: .line 61
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            invokeinterface org.h2.util.Cache.getMemory:()I
            ireturn
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/util/CacheSecondLevel;

  public void put(org.h2.util.CacheObject);
    descriptor: (Lorg/h2/util/CacheObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // org.h2.util.CacheObject r
         0: .line 66
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            aload 1 /* r */
            invokeinterface org.h2.util.Cache.put:(Lorg/h2/util/CacheObject;)V
         1: .line 67
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            aload 1 /* r */
            invokevirtual org.h2.util.CacheObject.getPos:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* r */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 68
            return
        end local 1 // org.h2.util.CacheObject r
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/util/CacheSecondLevel;
            0    3     1     r  Lorg/h2/util/CacheObject;
    MethodParameters:
      Name  Flags
      r     

  public boolean remove(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // int pos
         0: .line 72
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            iload 1 /* pos */
            invokeinterface org.h2.util.Cache.remove:(I)Z
            istore 2 /* result */
        start local 2 // boolean result
         1: .line 73
            iload 2 /* result */
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: org.h2.util.CacheSecondLevel int int
      StackMap stack: int
         2: iconst_0
      StackMap locals: org.h2.util.CacheSecondLevel int int
      StackMap stack: int int
         3: ior
            istore 2 /* result */
         4: .line 74
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 1 // int pos
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/h2/util/CacheSecondLevel;
            0    5     1     pos  I
            1    5     2  result  Z
    MethodParameters:
      Name  Flags
      pos   

  public void setMaxMemory(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // int size
         0: .line 79
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            iload 1 /* size */
            invokeinterface org.h2.util.Cache.setMaxMemory:(I)V
         1: .line 80
            return
        end local 1 // int size
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/util/CacheSecondLevel;
            0    2     1  size  I
    MethodParameters:
      Name  Flags
      size  

  public org.h2.util.CacheObject update(int, org.h2.util.CacheObject);
    descriptor: (ILorg/h2/util/CacheObject;)Lorg/h2/util/CacheObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.h2.util.CacheSecondLevel this
        start local 1 // int pos
        start local 2 // org.h2.util.CacheObject record
         0: .line 84
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.baseCache:Lorg/h2/util/Cache;
            iload 1 /* pos */
            aload 2 /* record */
            invokeinterface org.h2.util.Cache.update:(ILorg/h2/util/CacheObject;)Lorg/h2/util/CacheObject;
            astore 3 /* oldRec */
        start local 3 // org.h2.util.CacheObject oldRec
         1: .line 85
            aload 0 /* this */
            getfield org.h2.util.CacheSecondLevel.map:Ljava/util/Map;
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* record */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 86
            aload 3 /* oldRec */
            areturn
        end local 3 // org.h2.util.CacheObject oldRec
        end local 2 // org.h2.util.CacheObject record
        end local 1 // int pos
        end local 0 // org.h2.util.CacheSecondLevel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/h2/util/CacheSecondLevel;
            0    3     1     pos  I
            0    3     2  record  Lorg/h2/util/CacheObject;
            1    3     3  oldRec  Lorg/h2/util/CacheObject;
    MethodParameters:
        Name  Flags
      pos     
      record  
}
SourceFile: "CacheSecondLevel.java"