public class com.mongodb.QueryBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.QueryBuilder
  super_class: java.lang.Object
{
  private final com.mongodb.DBObject _query;
    descriptor: Lcom/mongodb/DBObject;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.QueryBuilder this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            putfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
         2: .line 42
            return
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/QueryBuilder;

  public static com.mongodb.QueryBuilder start();
    descriptor: ()Lcom/mongodb/QueryBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 50
            new com.mongodb.QueryBuilder
            dup
            invokespecial com.mongodb.QueryBuilder.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.mongodb.QueryBuilder start(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 60
            new com.mongodb.QueryBuilder
            dup
            invokespecial com.mongodb.QueryBuilder.<init>:()V
            aload 0 /* key */
            invokevirtual com.mongodb.QueryBuilder.put:(Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public com.mongodb.QueryBuilder put(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.String key
         0: .line 70
            aload 0 /* this */
            aload 1 /* key */
            putfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
         1: .line 71
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 1 /* key */
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 3
         2: .line 72
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            new com.mongodb.QueryBuilder$NullObject
            dup
            invokespecial com.mongodb.QueryBuilder$NullObject.<init>:()V
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/QueryBuilder;
            0    4     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public com.mongodb.QueryBuilder and(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.String key
         0: .line 85
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual com.mongodb.QueryBuilder.put:(Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
            areturn
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/QueryBuilder;
            0    1     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public com.mongodb.QueryBuilder greaterThan(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 95
            aload 0 /* this */
            ldc "$gt"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 96
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder greaterThanEquals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 106
            aload 0 /* this */
            ldc "$gte"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 107
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder lessThan(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 117
            aload 0 /* this */
            ldc "$lt"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 118
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder lessThanEquals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 128
            aload 0 /* this */
            ldc "$lte"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 129
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder is(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 139
            aload 0 /* this */
            aconst_null
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 140
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder notEquals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 150
            aload 0 /* this */
            ldc "$ne"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 151
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder in(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 161
            aload 0 /* this */
            ldc "$in"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 162
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder notIn(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 172
            aload 0 /* this */
            ldc "$nin"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 173
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder mod(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 183
            aload 0 /* this */
            ldc "$mod"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 184
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder all(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 194
            aload 0 /* this */
            ldc "$all"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 195
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder size(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 205
            aload 0 /* this */
            ldc "$size"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 206
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder exists(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.Object object
         0: .line 216
            aload 0 /* this */
            ldc "$exists"
            aload 1 /* object */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 217
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object object
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/QueryBuilder;
            0    2     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  final

  public com.mongodb.QueryBuilder regex(java.util.regex.Pattern);
    descriptor: (Ljava/util/regex/Pattern;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.util.regex.Pattern regex
         0: .line 227
            aload 0 /* this */
            aconst_null
            aload 1 /* regex */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 228
            aload 0 /* this */
            areturn
        end local 1 // java.util.regex.Pattern regex
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/mongodb/QueryBuilder;
            0    2     1  regex  Ljava/util/regex/Pattern;
    MethodParameters:
       Name  Flags
      regex  final

  public com.mongodb.QueryBuilder elemMatch(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // com.mongodb.DBObject match
         0: .line 238
            aload 0 /* this */
            ldc "$elemMatch"
            aload 1 /* match */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 239
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.DBObject match
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/mongodb/QueryBuilder;
            0    2     1  match  Lcom/mongodb/DBObject;
    MethodParameters:
       Name  Flags
      match  final

  public com.mongodb.QueryBuilder withinCenter(double, double, double);
    descriptor: (DDD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=7, args_size=4
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double radius
         0: .line 252
            aload 0 /* this */
            ldc "$within"
         1: .line 253
            new com.mongodb.BasicDBObject
            dup
            ldc "$center"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
            dload 1 /* x */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* y */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aastore
            dup
            iconst_1
            dload 5 /* radius */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 252
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 254
            aload 0 /* this */
            areturn
        end local 5 // double radius
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/mongodb/QueryBuilder;
            0    4     1       x  D
            0    4     3       y  D
            0    4     5  radius  D
    MethodParameters:
        Name  Flags
      x       final
      y       final
      radius  final

  public com.mongodb.QueryBuilder near(double, double);
    descriptor: (DD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double x
        start local 3 // double y
         0: .line 265
            aload 0 /* this */
            ldc "$near"
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
         1: .line 266
            dload 1 /* x */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* y */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         2: .line 265
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 267
            aload 0 /* this */
            areturn
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/QueryBuilder;
            0    4     1     x  D
            0    4     3     y  D
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public com.mongodb.QueryBuilder near(double, double, double);
    descriptor: (DDD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double maxDistance
         0: .line 279
            aload 0 /* this */
            ldc "$near"
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
         1: .line 280
            dload 1 /* x */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* y */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         2: .line 279
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 281
            aload 0 /* this */
            ldc "$maxDistance"
         4: .line 282
            dload 5 /* maxDistance */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
         5: .line 281
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 283
            aload 0 /* this */
            areturn
        end local 5 // double maxDistance
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/mongodb/QueryBuilder;
            0    7     1            x  D
            0    7     3            y  D
            0    7     5  maxDistance  D
    MethodParameters:
             Name  Flags
      x            final
      y            final
      maxDistance  final

  public com.mongodb.QueryBuilder nearSphere(double, double);
    descriptor: (DD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double longitude
        start local 3 // double latitude
         0: .line 294
            aload 0 /* this */
            ldc "$nearSphere"
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
         1: .line 295
            dload 1 /* longitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* latitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         2: .line 294
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 296
            aload 0 /* this */
            areturn
        end local 3 // double latitude
        end local 1 // double longitude
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/mongodb/QueryBuilder;
            0    4     1  longitude  D
            0    4     3   latitude  D
    MethodParameters:
           Name  Flags
      longitude  final
      latitude   final

  public com.mongodb.QueryBuilder nearSphere(double, double, double);
    descriptor: (DDD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double longitude
        start local 3 // double latitude
        start local 5 // double maxDistance
         0: .line 308
            aload 0 /* this */
            ldc "$nearSphere"
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
         1: .line 309
            dload 1 /* longitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* latitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         2: .line 308
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 310
            aload 0 /* this */
            ldc "$maxDistance"
         4: .line 311
            dload 5 /* maxDistance */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
         5: .line 310
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 312
            aload 0 /* this */
            areturn
        end local 5 // double maxDistance
        end local 3 // double latitude
        end local 1 // double longitude
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/mongodb/QueryBuilder;
            0    7     1    longitude  D
            0    7     3     latitude  D
            0    7     5  maxDistance  D
    MethodParameters:
             Name  Flags
      longitude    final
      latitude     final
      maxDistance  final

  public com.mongodb.QueryBuilder withinCenterSphere(double, double, double);
    descriptor: (DDD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=7, args_size=4
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double longitude
        start local 3 // double latitude
        start local 5 // double maxDistance
         0: .line 324
            aload 0 /* this */
            ldc "$within"
         1: .line 325
            new com.mongodb.BasicDBObject
            dup
            ldc "$centerSphere"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
         2: .line 326
            dload 1 /* longitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* latitude */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aastore
            dup
            iconst_1
            dload 5 /* maxDistance */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
         3: .line 325
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 324
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 327
            aload 0 /* this */
            areturn
        end local 5 // double maxDistance
        end local 3 // double latitude
        end local 1 // double longitude
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/mongodb/QueryBuilder;
            0    6     1    longitude  D
            0    6     3     latitude  D
            0    6     5  maxDistance  D
    MethodParameters:
             Name  Flags
      longitude    final
      latitude     final
      maxDistance  final

  public com.mongodb.QueryBuilder withinBox(double, double, double, double);
    descriptor: (DDDD)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=9, args_size=5
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double x2
        start local 7 // double y2
         0: .line 341
            aload 0 /* this */
            ldc "$within"
         1: .line 342
            new com.mongodb.BasicDBObject
            dup
            ldc "$box"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
            dload 1 /* x */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 3 /* y */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            aastore
            dup
            iconst_1
            iconst_2
            anewarray java.lang.Double
            dup
            iconst_0
            dload 5 /* x2 */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 7 /* y2 */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            aastore
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 341
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 343
            aload 0 /* this */
            areturn
        end local 7 // double y2
        end local 5 // double x2
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/QueryBuilder;
            0    4     1     x  D
            0    4     3     y  D
            0    4     5    x2  D
            0    4     7    y2  D
    MethodParameters:
      Name  Flags
      x     final
      y     final
      x2    final
      y2    final

  public com.mongodb.QueryBuilder withinPolygon(java.util.List<java.lang.Double[]>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.util.List points
         0: .line 353
            ldc "points"
            aload 1 /* points */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 354
            aload 1 /* points */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 2
            aload 1 /* points */
            invokeinterface java.util.List.size:()I
            iconst_3
            if_icmpge 3
         2: .line 355
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Polygon insufficient number of vertices defined"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "$within"
         4: .line 358
            new com.mongodb.BasicDBObject
            dup
            ldc "$polygon"
            aload 0 /* this */
            aload 1 /* points */
            invokevirtual com.mongodb.QueryBuilder.convertToListOfLists:(Ljava/util/List;)Ljava/util/List;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 357
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 359
            aload 0 /* this */
            areturn
        end local 1 // java.util.List points
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/mongodb/QueryBuilder;
            0    7     1  points  Ljava/util/List<[Ljava/lang/Double;>;
    Signature: (Ljava/util/List<[Ljava/lang/Double;>;)Lcom/mongodb/QueryBuilder;
    MethodParameters:
        Name  Flags
      points  final

  private java.util.List<java.util.List<java.lang.Double>> convertToListOfLists(java.util.List<java.lang.Double[]>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.util.List points
         0: .line 363
            new java.util.ArrayList
            dup
            aload 1 /* points */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* listOfLists */
        start local 2 // java.util.List listOfLists
         1: .line 364
            aload 1 /* points */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.mongodb.QueryBuilder java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Double[]
            astore 3 /* cur */
        start local 3 // java.lang.Double[] cur
         3: .line 365
            new java.util.ArrayList
            dup
            aload 3 /* cur */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* list */
        start local 5 // java.util.List list
         4: .line 366
            aload 5 /* list */
            aload 3 /* cur */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 367
            aload 2 /* listOfLists */
            aload 5 /* list */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.util.List list
        end local 3 // java.lang.Double[] cur
         6: .line 364
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 369
            aload 2 /* listOfLists */
            areturn
        end local 2 // java.util.List listOfLists
        end local 1 // java.util.List points
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/mongodb/QueryBuilder;
            0    8     1       points  Ljava/util/List<[Ljava/lang/Double;>;
            1    8     2  listOfLists  Ljava/util/List<Ljava/util/List<Ljava/lang/Double;>;>;
            3    6     3          cur  [Ljava/lang/Double;
            4    6     5         list  Ljava/util/List<Ljava/lang/Double;>;
    Signature: (Ljava/util/List<[Ljava/lang/Double;>;)Ljava/util/List<Ljava/util/List<Ljava/lang/Double;>;>;
    MethodParameters:
        Name  Flags
      points  final

  public com.mongodb.QueryBuilder text(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.String search
         0: .line 380
            aload 0 /* this */
            aload 1 /* search */
            aconst_null
            invokevirtual com.mongodb.QueryBuilder.text:(Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
            areturn
        end local 1 // java.lang.String search
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/QueryBuilder;
            0    1     1  search  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      search  final

  public com.mongodb.QueryBuilder text(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.String search
        start local 2 // java.lang.String language
         0: .line 392
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            ifnull 2
         1: .line 393
            new com.mongodb.QueryBuilder$QueryBuilderException
            dup
            ldc "The text operand may only occur at the top-level of a query. It does not apply to a specific element, but rather to a document as a whole."
            invokespecial com.mongodb.QueryBuilder$QueryBuilderException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "$text"
            invokevirtual com.mongodb.QueryBuilder.put:(Ljava/lang/String;)Lcom/mongodb/QueryBuilder;
            pop
         3: .line 398
            aload 0 /* this */
            ldc "$search"
            aload 1 /* search */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 399
            aload 2 /* language */
            ifnull 6
         5: .line 400
            aload 0 /* this */
            ldc "$language"
            aload 2 /* language */
            invokevirtual com.mongodb.QueryBuilder.addOperand:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String language
        end local 1 // java.lang.String search
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/mongodb/QueryBuilder;
            0    7     1    search  Ljava/lang/String;
            0    7     2  language  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
          Name  Flags
      search    final
      language  final

  public com.mongodb.QueryBuilder not();
    descriptor: ()Lcom/mongodb/QueryBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.QueryBuilder this
         0: .line 413
            aload 0 /* this */
            iconst_1
            putfield com.mongodb.QueryBuilder._hasNot:Z
         1: .line 414
            aload 0 /* this */
            areturn
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/QueryBuilder;

  public com.mongodb.QueryBuilder or(com.mongodb.DBObject[]);
    descriptor: ([Lcom/mongodb/DBObject;)Lcom/mongodb/QueryBuilder;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // com.mongodb.DBObject[] ors
         0: .line 425
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            ldc "$or"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* l */
        start local 2 // java.util.List l
         1: .line 426
            aload 2 /* l */
            ifnonnull 4
         2: .line 427
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* l */
         3: .line 428
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            ldc "$or"
            aload 2 /* l */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 430
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* l */
            aload 1 /* ors */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 431
            aload 0 /* this */
            areturn
        end local 2 // java.util.List l
        end local 1 // com.mongodb.DBObject[] ors
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/mongodb/QueryBuilder;
            0    6     1   ors  [Lcom/mongodb/DBObject;
            1    6     2     l  Ljava/util/List;
    MethodParameters:
      Name  Flags
      ors   final

  public com.mongodb.QueryBuilder and(com.mongodb.DBObject[]);
    descriptor: ([Lcom/mongodb/DBObject;)Lcom/mongodb/QueryBuilder;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // com.mongodb.DBObject[] ands
         0: .line 442
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            ldc "$and"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* l */
        start local 2 // java.util.List l
         1: .line 443
            aload 2 /* l */
            ifnonnull 4
         2: .line 444
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* l */
         3: .line 445
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            ldc "$and"
            aload 2 /* l */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 447
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* l */
            aload 1 /* ands */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 448
            aload 0 /* this */
            areturn
        end local 2 // java.util.List l
        end local 1 // com.mongodb.DBObject[] ands
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/mongodb/QueryBuilder;
            0    6     1  ands  [Lcom/mongodb/DBObject;
            1    6     2     l  Ljava/util/List;
    MethodParameters:
      Name  Flags
      ands  final

  public com.mongodb.DBObject get();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.mongodb.QueryBuilder this
         0: .line 458
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            invokeinterface com.mongodb.DBObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: com.mongodb.QueryBuilder top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* key */
        start local 1 // java.lang.String key
         2: .line 459
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 1 /* key */
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            instanceof com.mongodb.QueryBuilder$NullObject
            ifeq 4
         3: .line 460
            new com.mongodb.QueryBuilder$QueryBuilderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No operand for key:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.mongodb.QueryBuilder$QueryBuilderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String key
         4: .line 458
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 463
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            areturn
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/mongodb/QueryBuilder;
            2    4     1   key  Ljava/lang/String;

  private void addOperand(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.mongodb.QueryBuilder this
        start local 1 // java.lang.String op
        start local 2 // java.lang.Object value
         0: .line 467
            aload 2 /* value */
            astore 3 /* valueToPut */
        start local 3 // java.lang.Object valueToPut
         1: .line 468
            aload 1 /* op */
            ifnonnull 7
         2: .line 469
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._hasNot:Z
            ifeq 5
         3: .line 470
            new com.mongodb.BasicDBObject
            dup
            ldc "$not"
            aload 3 /* valueToPut */
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 3 /* valueToPut */
         4: .line 471
            aload 0 /* this */
            iconst_0
            putfield com.mongodb.QueryBuilder._hasNot:Z
         5: .line 473
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            aload 3 /* valueToPut */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 474
            return
         7: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* storedValue */
        start local 4 // java.lang.Object storedValue
         8: .line 479
            aload 4 /* storedValue */
            instanceof com.mongodb.DBObject
            ifne 17
         9: .line 480
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 5 /* operand */
        start local 5 // com.mongodb.BasicDBObject operand
        10: .line 481
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._hasNot:Z
            ifeq 15
        11: .line 482
            new com.mongodb.BasicDBObject
            dup
            ldc "$not"
            aload 5 /* operand */
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 6 /* notOperand */
        start local 6 // com.mongodb.DBObject notOperand
        12: .line 483
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            aload 6 /* notOperand */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 484
            aload 0 /* this */
            iconst_0
            putfield com.mongodb.QueryBuilder._hasNot:Z
        end local 6 // com.mongodb.DBObject notOperand
        14: .line 485
            goto 20
        15: .line 486
      StackMap locals: java.lang.Object com.mongodb.BasicDBObject
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            aload 5 /* operand */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 488
            goto 20
        end local 5 // com.mongodb.BasicDBObject operand
        17: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._query:Lcom/mongodb/DBObject;
            aload 0 /* this */
            getfield com.mongodb.QueryBuilder._currentKey:Ljava/lang/String;
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.mongodb.BasicDBObject
            astore 5 /* operand */
        start local 5 // com.mongodb.BasicDBObject operand
        18: .line 490
            aload 5 /* operand */
            ldc "$not"
            invokevirtual com.mongodb.BasicDBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 20
        19: .line 491
            aload 5 /* operand */
            ldc "$not"
            invokevirtual com.mongodb.BasicDBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.mongodb.BasicDBObject
            astore 5 /* operand */
        20: .line 494
      StackMap locals: com.mongodb.BasicDBObject
      StackMap stack:
            aload 5 /* operand */
            aload 1 /* op */
            aload 3 /* valueToPut */
            invokevirtual com.mongodb.BasicDBObject.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 495
            return
        end local 5 // com.mongodb.BasicDBObject operand
        end local 4 // java.lang.Object storedValue
        end local 3 // java.lang.Object valueToPut
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String op
        end local 0 // com.mongodb.QueryBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Lcom/mongodb/QueryBuilder;
            0   22     1           op  Ljava/lang/String;
            0   22     2        value  Ljava/lang/Object;
            1   22     3   valueToPut  Ljava/lang/Object;
            8   22     4  storedValue  Ljava/lang/Object;
           10   17     5      operand  Lcom/mongodb/BasicDBObject;
           18   22     5      operand  Lcom/mongodb/BasicDBObject;
           12   14     6   notOperand  Lcom/mongodb/DBObject;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
       Name  Flags
      op     final
      value  final
}
SourceFile: "QueryBuilder.java"
NestMembers:
  com.mongodb.QueryBuilder$NullObject  com.mongodb.QueryBuilder$QueryBuilderException
InnerClasses:
  private NullObject = com.mongodb.QueryBuilder$NullObject of com.mongodb.QueryBuilder
  QueryBuilderException = com.mongodb.QueryBuilder$QueryBuilderException of com.mongodb.QueryBuilder