public class org.mongodb.morphia.MapReduceOptions<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.mongodb.morphia.MapReduceOptions
  super_class: java.lang.Object
{
  private java.lang.String outputDB;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String outputCollection;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String inputCollection;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String map;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String reduce;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.MapReduceCommand$OutputType outputType;
    descriptor: Lcom/mongodb/MapReduceCommand$OutputType;
    flags: (0x0002) ACC_PRIVATE

  private org.mongodb.morphia.query.Query query;
    descriptor: Lorg/mongodb/morphia/query/Query;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String finalize;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0002) ACC_PRIVATE

  private int limit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long maxTimeMS;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.Object> scope;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private boolean jsMode;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean verbose;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean bypassDocumentValidation;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.client.model.Collation collation;
    descriptor: Lcom/mongodb/client/model/Collation;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Class<T> resultType;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/Class<TT;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.MapReduceOptions this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;

  public org.mongodb.morphia.MapReduceOptions<T> bypassDocumentValidation(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.Boolean bypassDocumentValidation
         0: .line 65
            aload 0 /* this */
            aload 1 /* bypassDocumentValidation */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield org.mongodb.morphia.MapReduceOptions.bypassDocumentValidation:Z
         1: .line 66
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  bypassDocumentValidation  Ljava/lang/Boolean;
    Signature: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
                          Name  Flags
      bypassDocumentValidation  final

  public org.mongodb.morphia.MapReduceOptions<T> collation(com.mongodb.client.model.Collation);
    descriptor: (Lcom/mongodb/client/model/Collation;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // com.mongodb.client.model.Collation collation
         0: .line 77
            aload 0 /* this */
            aload 1 /* collation */
            putfield org.mongodb.morphia.MapReduceOptions.collation:Lcom/mongodb/client/model/Collation;
         1: .line 78
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.client.model.Collation collation
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  collation  Lcom/mongodb/client/model/Collation;
    Signature: (Lcom/mongodb/client/model/Collation;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
           Name  Flags
      collation  final

  public org.mongodb.morphia.MapReduceOptions<T> finalize(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String finalize
         0: .line 88
            aload 0 /* this */
            aload 1 /* finalize */
            putfield org.mongodb.morphia.MapReduceOptions.finalize:Ljava/lang/String;
         1: .line 89
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String finalize
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  finalize  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
          Name  Flags
      finalize  final

  public org.mongodb.morphia.MapReduceOptions<T> jsMode(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.Boolean jsMode
         0: .line 99
            aload 0 /* this */
            aload 1 /* jsMode */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield org.mongodb.morphia.MapReduceOptions.jsMode:Z
         1: .line 100
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Boolean jsMode
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  jsMode  Ljava/lang/Boolean;
    Signature: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
        Name  Flags
      jsMode  final

  public org.mongodb.morphia.MapReduceOptions<T> limit(int);
    descriptor: (I)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // int limit
         0: .line 110
            aload 0 /* this */
            iload 1 /* limit */
            putfield org.mongodb.morphia.MapReduceOptions.limit:I
         1: .line 111
            aload 0 /* this */
            areturn
        end local 1 // int limit
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  limit  I
    Signature: (I)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
       Name  Flags
      limit  final

  public org.mongodb.morphia.MapReduceOptions<T> map(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String map
         0: .line 121
            ldc "map"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* map */
            aastore
            invokestatic org.mongodb.morphia.utils.Assert.parametersNotNull:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 122
            ldc "map"
            aload 1 /* map */
            invokestatic org.mongodb.morphia.utils.Assert.parameterNotEmpty:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 123
            aload 0 /* this */
            aload 1 /* map */
            putfield org.mongodb.morphia.MapReduceOptions.map:Ljava/lang/String;
         3: .line 124
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String map
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    4     1   map  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
      Name  Flags
      map   final

  public org.mongodb.morphia.MapReduceOptions<T> maxTimeMS(long);
    descriptor: (J)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // long maxTimeMS
         0: .line 135
            aload 0 /* this */
            lload 1 /* maxTimeMS */
            putfield org.mongodb.morphia.MapReduceOptions.maxTimeMS:J
         1: .line 136
            aload 0 /* this */
            areturn
        end local 1 // long maxTimeMS
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  maxTimeMS  J
    Signature: (J)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
           Name  Flags
      maxTimeMS  final

  public org.mongodb.morphia.MapReduceOptions<T> inputCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String name
         0: .line 146
            aload 0 /* this */
            aload 1 /* name */
            putfield org.mongodb.morphia.MapReduceOptions.inputCollection:Ljava/lang/String;
         1: .line 147
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
      Name  Flags
      name  final

  public org.mongodb.morphia.MapReduceOptions<T> outputCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String name
         0: .line 157
            aload 0 /* this */
            aload 1 /* name */
            putfield org.mongodb.morphia.MapReduceOptions.outputCollection:Ljava/lang/String;
         1: .line 158
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
      Name  Flags
      name  final

  public org.mongodb.morphia.MapReduceOptions<T> outputDB(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String outputDB
         0: .line 168
            aload 0 /* this */
            aload 1 /* outputDB */
            putfield org.mongodb.morphia.MapReduceOptions.outputDB:Ljava/lang/String;
         1: .line 169
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String outputDB
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  outputDB  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
          Name  Flags
      outputDB  final

  public org.mongodb.morphia.MapReduceOptions<T> outputType(com.mongodb.MapReduceCommand$OutputType);
    descriptor: (Lcom/mongodb/MapReduceCommand$OutputType;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // com.mongodb.MapReduceCommand$OutputType outputType
         0: .line 179
            aload 0 /* this */
            aload 1 /* outputType */
            putfield org.mongodb.morphia.MapReduceOptions.outputType:Lcom/mongodb/MapReduceCommand$OutputType;
         1: .line 180
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.MapReduceCommand$OutputType outputType
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  outputType  Lcom/mongodb/MapReduceCommand$OutputType;
    Signature: (Lcom/mongodb/MapReduceCommand$OutputType;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
            Name  Flags
      outputType  final

  public org.mongodb.morphia.MapReduceOptions<T> query(org.mongodb.morphia.query.Query);
    descriptor: (Lorg/mongodb/morphia/query/Query;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // org.mongodb.morphia.query.Query query
         0: .line 190
            ldc "query"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* query */
            aastore
            invokestatic org.mongodb.morphia.utils.Assert.parametersNotNull:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 191
            aload 0 /* this */
            aload 1 /* query */
            putfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
         2: .line 192
            aload 0 /* this */
            areturn
        end local 1 // org.mongodb.morphia.query.Query query
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    3     1  query  Lorg/mongodb/morphia/query/Query;
    Signature: (Lorg/mongodb/morphia/query/Query;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
       Name  Flags
      query  final

  public org.mongodb.morphia.MapReduceOptions<T> readPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // com.mongodb.ReadPreference preference
         0: .line 202
            aload 0 /* this */
            aload 1 /* preference */
            putfield org.mongodb.morphia.MapReduceOptions.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 203
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.ReadPreference preference
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  preference  Lcom/mongodb/ReadPreference;
    Signature: (Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
            Name  Flags
      preference  final

  public org.mongodb.morphia.MapReduceOptions<T> reduce(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.String reduce
         0: .line 213
            ldc "reduce"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* reduce */
            aastore
            invokestatic org.mongodb.morphia.utils.Assert.parametersNotNull:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 214
            ldc "reduce"
            aload 1 /* reduce */
            invokestatic org.mongodb.morphia.utils.Assert.parameterNotEmpty:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 215
            aload 0 /* this */
            aload 1 /* reduce */
            putfield org.mongodb.morphia.MapReduceOptions.reduce:Ljava/lang/String;
         3: .line 216
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String reduce
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    4     1  reduce  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
        Name  Flags
      reduce  final

  public org.mongodb.morphia.MapReduceOptions<T> resultType(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.Class resultType
         0: .line 226
            aload 0 /* this */
            aload 1 /* resultType */
            putfield org.mongodb.morphia.MapReduceOptions.resultType:Ljava/lang/Class;
         1: .line 227
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Class resultType
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  resultType  Ljava/lang/Class<TT;>;
    Signature: (Ljava/lang/Class<TT;>;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
            Name  Flags
      resultType  final

  public org.mongodb.morphia.MapReduceOptions<T> scope(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.util.Map scope
         0: .line 237
            aload 0 /* this */
            aload 1 /* scope */
            putfield org.mongodb.morphia.MapReduceOptions.scope:Ljava/util/Map;
         1: .line 238
            aload 0 /* this */
            areturn
        end local 1 // java.util.Map scope
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  scope  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
       Name  Flags
      scope  final

  public org.mongodb.morphia.MapReduceOptions<T> verbose(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // java.lang.Boolean verbose
         0: .line 248
            aload 0 /* this */
            aload 1 /* verbose */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield org.mongodb.morphia.MapReduceOptions.verbose:Z
         1: .line 249
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Boolean verbose
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0    2     1  verbose  Ljava/lang/Boolean;
    Signature: (Ljava/lang/Boolean;)Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    MethodParameters:
         Name  Flags
      verbose  final

  com.mongodb.MapReduceCommand$OutputType getOutputType();
    descriptor: ()Lcom/mongodb/MapReduceCommand$OutputType;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.MapReduceOptions this
         0: .line 253
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.outputType:Lcom/mongodb/MapReduceCommand$OutputType;
            areturn
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;

  org.mongodb.morphia.query.Query getQuery();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.MapReduceOptions this
         0: .line 257
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            areturn
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;

  java.lang.Class<T> getResultType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.MapReduceOptions this
         0: .line 261
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.resultType:Ljava/lang/Class;
            areturn
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
    Signature: ()Ljava/lang/Class<TT;>;

  com.mongodb.MapReduceCommand toCommand(org.mongodb.morphia.mapping.Mapper);
    descriptor: (Lorg/mongodb/morphia/mapping/Mapper;)Lcom/mongodb/MapReduceCommand;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // org.mongodb.morphia.MapReduceOptions this
        start local 1 // org.mongodb.morphia.mapping.Mapper mapper
         0: .line 266
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getOffset:()I
            ifne 1
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getFieldsObject:()Lcom/mongodb/DBObject;
            ifnull 2
         1: .line 267
      StackMap locals:
      StackMap stack:
            new org.mongodb.morphia.query.QueryException
            dup
            ldc "mapReduce does not allow the offset/retrievedFields query "
            invokespecial org.mongodb.morphia.query.QueryException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.inputCollection:Ljava/lang/String;
            ifnull 3
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.MapReduceOptions.getQuery:()Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getCollection:()Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getDB:()Lcom/mongodb/DB;
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.inputCollection:Ljava/lang/String;
            invokevirtual com.mongodb.DB.getCollection:(Ljava/lang/String;)Lcom/mongodb/DBCollection;
            goto 4
         3: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getCollection:()Lcom/mongodb/DBCollection;
         4: .line 270
      StackMap locals:
      StackMap stack: com.mongodb.DBCollection
            astore 2 /* dbColl */
        start local 2 // com.mongodb.DBCollection dbColl
         5: .line 272
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.outputCollection:Ljava/lang/String;
            ifnull 6
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.outputCollection:Ljava/lang/String;
            goto 7
      StackMap locals: com.mongodb.DBCollection
      StackMap stack:
         6: aload 1 /* mapper */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.resultType:Ljava/lang/Class;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getCollectionName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 3 /* target */
        start local 3 // java.lang.String target
         8: .line 274
            new com.mongodb.MapReduceCommand
            dup
            aload 2 /* dbColl */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.map:Ljava/lang/String;
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.reduce:Ljava/lang/String;
            aload 3 /* target */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.outputType:Lcom/mongodb/MapReduceCommand$OutputType;
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getQueryObject:()Lcom/mongodb/DBObject;
            invokespecial com.mongodb.MapReduceCommand.<init>:(Lcom/mongodb/DBCollection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/mongodb/MapReduceCommand$OutputType;Lcom/mongodb/DBObject;)V
            astore 4 /* command */
        start local 4 // com.mongodb.MapReduceCommand command
         9: .line 275
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.bypassDocumentValidation:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.mongodb.MapReduceCommand.setBypassDocumentValidation:(Ljava/lang/Boolean;)V
        10: .line 276
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.collation:Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.MapReduceCommand.setCollation:(Lcom/mongodb/client/model/Collation;)V
        11: .line 277
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.finalize:Ljava/lang/String;
            invokevirtual com.mongodb.MapReduceCommand.setFinalize:(Ljava/lang/String;)V
        12: .line 278
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.jsMode:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.mongodb.MapReduceCommand.setJsMode:(Ljava/lang/Boolean;)V
        13: .line 279
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.limit:I
            invokevirtual com.mongodb.MapReduceCommand.setLimit:(I)V
        14: .line 280
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.maxTimeMS:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.MapReduceCommand.setMaxTime:(JLjava/util/concurrent/TimeUnit;)V
        15: .line 281
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.outputDB:Ljava/lang/String;
            invokevirtual com.mongodb.MapReduceCommand.setOutputDB:(Ljava/lang/String;)V
        16: .line 282
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.readPreference:Lcom/mongodb/ReadPreference;
            invokevirtual com.mongodb.MapReduceCommand.setReadPreference:(Lcom/mongodb/ReadPreference;)V
        17: .line 283
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.scope:Ljava/util/Map;
            invokevirtual com.mongodb.MapReduceCommand.setScope:(Ljava/util/Map;)V
        18: .line 284
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.query:Lorg/mongodb/morphia/query/Query;
            invokeinterface org.mongodb.morphia.query.Query.getSortObject:()Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.MapReduceCommand.setSort:(Lcom/mongodb/DBObject;)V
        19: .line 285
            aload 4 /* command */
            aload 0 /* this */
            getfield org.mongodb.morphia.MapReduceOptions.verbose:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.mongodb.MapReduceCommand.setVerbose:(Ljava/lang/Boolean;)V
        20: .line 287
            aload 4 /* command */
            areturn
        end local 4 // com.mongodb.MapReduceCommand command
        end local 3 // java.lang.String target
        end local 2 // com.mongodb.DBCollection dbColl
        end local 1 // org.mongodb.morphia.mapping.Mapper mapper
        end local 0 // org.mongodb.morphia.MapReduceOptions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/mongodb/morphia/MapReduceOptions<TT;>;
            0   21     1   mapper  Lorg/mongodb/morphia/mapping/Mapper;
            5   21     2   dbColl  Lcom/mongodb/DBCollection;
            8   21     3   target  Ljava/lang/String;
            9   21     4  command  Lcom/mongodb/MapReduceCommand;
    MethodParameters:
        Name  Flags
      mapper  final
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "MapReduceOptions.java"
InnerClasses:
  public final OutputType = com.mongodb.MapReduceCommand$OutputType of com.mongodb.MapReduceCommand