class com.mongodb.client.internal.MongoMappingCursor<T, U> implements com.mongodb.client.MongoCursor<U>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.client.internal.MongoMappingCursor
  super_class: java.lang.Object
{
  private final com.mongodb.client.MongoCursor<T> proxied;
    descriptor: Lcom/mongodb/client/MongoCursor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/client/MongoCursor<TT;>;

  private final com.mongodb.Function<T, U> mapper;
    descriptor: Lcom/mongodb/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/Function<TT;TU;>;

  void <init>(com.mongodb.client.MongoCursor<T>, com.mongodb.Function<T, U>);
    descriptor: (Lcom/mongodb/client/MongoCursor;Lcom/mongodb/Function;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
        start local 1 // com.mongodb.client.MongoCursor proxied
        start local 2 // com.mongodb.Function mapper
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
            ldc "proxied"
            aload 1 /* proxied */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.client.MongoCursor
            putfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
         2: .line 33
            aload 0 /* this */
            ldc "mapper"
            aload 2 /* mapper */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.Function
            putfield com.mongodb.client.internal.MongoMappingCursor.mapper:Lcom/mongodb/Function;
         3: .line 34
            return
        end local 2 // com.mongodb.Function mapper
        end local 1 // com.mongodb.client.MongoCursor proxied
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;
            0    4     1  proxied  Lcom/mongodb/client/MongoCursor<TT;>;
            0    4     2   mapper  Lcom/mongodb/Function<TT;TU;>;
    Signature: (Lcom/mongodb/client/MongoCursor<TT;>;Lcom/mongodb/Function<TT;TU;>;)V
    MethodParameters:
         Name  Flags
      proxied  final
      mapper   final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 38
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.close:()V
         1: .line 39
            return
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 43
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.hasNext:()Z
            ireturn
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;

  public U next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 48
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.mapper:Lcom/mongodb/Function;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.next:()Ljava/lang/Object;
            invokeinterface com.mongodb.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;
    Signature: ()TU;

  public U tryNext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 54
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.tryNext:()Ljava/lang/Object;
            astore 1 /* proxiedNext */
        start local 1 // java.lang.Object proxiedNext
         1: .line 55
            aload 1 /* proxiedNext */
            ifnonnull 3
         2: .line 56
            aconst_null
            areturn
         3: .line 58
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.mapper:Lcom/mongodb/Function;
            aload 1 /* proxiedNext */
            invokeinterface com.mongodb.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object proxiedNext
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;
            1    4     1  proxiedNext  TT;
    Signature: ()TU;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public void remove();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 64
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.remove:()V
         1: .line 65
            return
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;

  public com.mongodb.ServerCursor getServerCursor();
    descriptor: ()Lcom/mongodb/ServerCursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 70
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.getServerCursor:()Lcom/mongodb/ServerCursor;
            areturn
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public com.mongodb.ServerAddress getServerAddress();
    descriptor: ()Lcom/mongodb/ServerAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoMappingCursor this
         0: .line 75
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoMappingCursor.proxied:Lcom/mongodb/client/MongoCursor;
            invokeinterface com.mongodb.client.MongoCursor.getServerAddress:()Lcom/mongodb/ServerAddress;
            areturn
        end local 0 // com.mongodb.client.internal.MongoMappingCursor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoMappingCursor<TT;TU;>;
}
Signature: <T:Ljava/lang/Object;U:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/client/MongoCursor<TU;>;
SourceFile: "MongoMappingCursor.java"