public class org.h2.index.ViewCursor implements org.h2.index.Cursor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.index.ViewCursor
  super_class: java.lang.Object
{
  private final org.h2.table.Table table;
    descriptor: Lorg/h2/table/Table;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.index.ViewIndex index;
    descriptor: Lorg/h2/index/ViewIndex;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.result.ResultInterface result;
    descriptor: Lorg/h2/result/ResultInterface;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.result.SearchRow first;
    descriptor: Lorg/h2/result/SearchRow;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.result.SearchRow last;
    descriptor: Lorg/h2/result/SearchRow;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.result.Row current;
    descriptor: Lorg/h2/result/Row;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.h2.index.ViewIndex, org.h2.result.ResultInterface, org.h2.result.SearchRow, org.h2.result.SearchRow);
    descriptor: (Lorg/h2/index/ViewIndex;Lorg/h2/result/ResultInterface;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.h2.index.ViewCursor this
        start local 1 // org.h2.index.ViewIndex index
        start local 2 // org.h2.result.ResultInterface result
        start local 3 // org.h2.result.SearchRow first
        start local 4 // org.h2.result.SearchRow last
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 29
            aload 0 /* this */
            aload 1 /* index */
            invokevirtual org.h2.index.ViewIndex.getTable:()Lorg/h2/table/Table;
            putfield org.h2.index.ViewCursor.table:Lorg/h2/table/Table;
         2: .line 30
            aload 0 /* this */
            aload 1 /* index */
            putfield org.h2.index.ViewCursor.index:Lorg/h2/index/ViewIndex;
         3: .line 31
            aload 0 /* this */
            aload 2 /* result */
            putfield org.h2.index.ViewCursor.result:Lorg/h2/result/ResultInterface;
         4: .line 32
            aload 0 /* this */
            aload 3 /* first */
            putfield org.h2.index.ViewCursor.first:Lorg/h2/result/SearchRow;
         5: .line 33
            aload 0 /* this */
            aload 4 /* last */
            putfield org.h2.index.ViewCursor.last:Lorg/h2/result/SearchRow;
         6: .line 34
            return
        end local 4 // org.h2.result.SearchRow last
        end local 3 // org.h2.result.SearchRow first
        end local 2 // org.h2.result.ResultInterface result
        end local 1 // org.h2.index.ViewIndex index
        end local 0 // org.h2.index.ViewCursor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/h2/index/ViewCursor;
            0    7     1   index  Lorg/h2/index/ViewIndex;
            0    7     2  result  Lorg/h2/result/ResultInterface;
            0    7     3   first  Lorg/h2/result/SearchRow;
            0    7     4    last  Lorg/h2/result/SearchRow;
    MethodParameters:
        Name  Flags
      index   
      result  
      first   
      last    

  public org.h2.result.Row get();
    descriptor: ()Lorg/h2/result/Row;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.ViewCursor this
         0: .line 38
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            areturn
        end local 0 // org.h2.index.ViewCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/ViewCursor;

  public org.h2.result.SearchRow getSearchRow();
    descriptor: ()Lorg/h2/result/SearchRow;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.ViewCursor this
         0: .line 43
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            areturn
        end local 0 // org.h2.index.ViewCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/ViewCursor;

  public boolean next();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.h2.index.ViewCursor this
         0: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.result:Lorg/h2/result/ResultInterface;
            invokeinterface org.h2.result.ResultInterface.next:()Z
            istore 1 /* res */
        start local 1 // boolean res
         1: .line 50
            iload 1 /* res */
            ifne 8
         2: .line 51
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.index:Lorg/h2/index/ViewIndex;
            invokevirtual org.h2.index.ViewIndex.isRecursive:()Z
            ifeq 5
         3: .line 52
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.result:Lorg/h2/result/ResultInterface;
            invokeinterface org.h2.result.ResultInterface.reset:()V
         4: .line 53
            goto 6
         5: .line 54
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.result:Lorg/h2/result/ResultInterface;
            invokeinterface org.h2.result.ResultInterface.close:()V
         6: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
         7: .line 57
            iconst_0
            ireturn
         8: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.table:Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getTemplateRow:()Lorg/h2/result/Row;
            putfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
         9: .line 60
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.result:Lorg/h2/result/ResultInterface;
            invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
            astore 2 /* values */
        start local 2 // org.h2.value.Value[] values
        10: .line 61
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 4 /* len */
        start local 4 // int len
        12: goto 18
        13: .line 62
      StackMap locals: org.h2.value.Value[] int int
      StackMap stack:
            iload 3 /* i */
            aload 2 /* values */
            arraylength
            if_icmpge 14
            aload 2 /* values */
            iload 3 /* i */
            aaload
            goto 15
      StackMap locals:
      StackMap stack:
        14: getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
      StackMap locals:
      StackMap stack: org.h2.value.Value
        15: astore 5 /* v */
        start local 5 // org.h2.value.Value v
        16: .line 63
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            iload 3 /* i */
            aload 5 /* v */
            invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
        end local 5 // org.h2.value.Value v
        17: .line 61
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            iload 4 /* len */
            if_icmplt 13
        end local 4 // int len
        end local 3 // int i
        19: .line 66
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.first:Lorg/h2/result/SearchRow;
            ifnull 23
        20: .line 67
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.index:Lorg/h2/index/ViewIndex;
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.first:Lorg/h2/result/SearchRow;
            invokevirtual org.h2.index.ViewIndex.compareRows:(Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)I
            istore 3 /* comp */
        start local 3 // int comp
        21: .line 68
            iload 3 /* comp */
            ifge 23
        22: .line 69
            goto 0
        end local 3 // int comp
        23: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.last:Lorg/h2/result/SearchRow;
            ifnull 27
        24: .line 73
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.index:Lorg/h2/index/ViewIndex;
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.current:Lorg/h2/result/Row;
            aload 0 /* this */
            getfield org.h2.index.ViewCursor.last:Lorg/h2/result/SearchRow;
            invokevirtual org.h2.index.ViewIndex.compareRows:(Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)I
            istore 3 /* comp */
        start local 3 // int comp
        25: .line 74
            iload 3 /* comp */
            ifle 27
        26: .line 75
            goto 0
        end local 3 // int comp
        27: .line 78
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.h2.value.Value[] values
        end local 1 // boolean res
        end local 0 // org.h2.index.ViewCursor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0    this  Lorg/h2/index/ViewCursor;
            1   28     1     res  Z
           10   28     2  values  [Lorg/h2/value/Value;
           11   19     3       i  I
           12   19     4     len  I
           16   17     5       v  Lorg/h2/value/Value;
           21   23     3    comp  I
           25   27     3    comp  I

  public boolean previous();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.ViewCursor this
         0: .line 84
            aload 0 /* this */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 0 // org.h2.index.ViewCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/ViewCursor;
}
SourceFile: "ViewCursor.java"