public abstract class com.mongodb.gridfs.GridFSFile implements com.mongodb.DBObject
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.mongodb.gridfs.GridFSFile
  super_class: java.lang.Object
{
  private static final java.util.Set<java.lang.String> VALID_FIELDS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  final com.mongodb.DBObject extra;
    descriptor: Lcom/mongodb/DBObject;
    flags: (0x0010) ACC_FINAL

  com.mongodb.gridfs.GridFS fs;
    descriptor: Lcom/mongodb/gridfs/GridFS;
    flags: (0x0000) 

  java.lang.Object id;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 

  java.lang.String filename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String contentType;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  long length;
    descriptor: J
    flags: (0x0000) 

  long chunkSize;
    descriptor: J
    flags: (0x0000) 

  java.util.Date uploadDate;
    descriptor: Ljava/util/Date;
    flags: (0x0000) 

  java.lang.String md5;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 40
            new java.util.HashSet
            dup
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_id"
            aastore
            dup
            iconst_1
         1: .line 41
            ldc "filename"
            aastore
            dup
            iconst_2
         2: .line 42
            ldc "contentType"
            aastore
            dup
            iconst_3
         3: .line 43
            ldc "length"
            aastore
            dup
            iconst_4
         4: .line 44
            ldc "chunkSize"
            aastore
            dup
            iconst_5
         5: .line 45
            ldc "uploadDate"
            aastore
            dup
            bipush 6
         6: .line 46
            ldc "aliases"
            aastore
            dup
            bipush 7
         7: .line 47
            ldc "md5"
            aastore
         8: .line 40
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic com.mongodb.gridfs.GridFSFile.VALID_FIELDS:Ljava/util/Set;
         9: .line 47
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public void save();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 66
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            ifnonnull 2
         1: .line 67
            new com.mongodb.MongoException
            dup
            ldc "need fs"
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            invokevirtual com.mongodb.gridfs.GridFS.getFilesCollection:()Lcom/mongodb/DBCollection;
            aload 0 /* this */
            invokevirtual com.mongodb.DBCollection.save:(Lcom/mongodb/DBObject;)Lcom/mongodb/WriteResult;
            pop
         3: .line 70
            return
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public void validate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 80
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            ifnonnull 2
         1: .line 81
            new com.mongodb.MongoException
            dup
            ldc "no fs"
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
            ifnonnull 4
         3: .line 84
            new com.mongodb.MongoException
            dup
            ldc "no md5 stored"
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 87
      StackMap locals:
      StackMap stack:
            new com.mongodb.BasicDBObject
            dup
            ldc "filemd5"
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.id:Ljava/lang/Object;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 1 /* cmd */
        start local 1 // com.mongodb.DBObject cmd
         5: .line 88
            aload 1 /* cmd */
            ldc "root"
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            invokevirtual com.mongodb.gridfs.GridFS.getBucketName:()Ljava/lang/String;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 89
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            invokevirtual com.mongodb.gridfs.GridFS.getDB:()Lcom/mongodb/DB;
            aload 1 /* cmd */
            invokevirtual com.mongodb.DB.command:(Lcom/mongodb/DBObject;)Lcom/mongodb/CommandResult;
            astore 2 /* res */
        start local 2 // com.mongodb.DBObject res
         7: .line 90
            aload 2 /* res */
            ifnull 12
            aload 2 /* res */
            ldc "md5"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 12
         8: .line 91
            aload 2 /* res */
            ldc "md5"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 3 /* m */
        start local 3 // java.lang.String m
         9: .line 92
            aload 3 /* m */
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 93
            return
        11: .line 95
      StackMap locals: com.mongodb.DBObject com.mongodb.DBObject java.lang.String
      StackMap stack:
            new com.mongodb.MongoException
            dup
            new java.lang.StringBuilder
            dup
            ldc "md5 differ.  mine ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] theirs ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String m
        12: .line 99
      StackMap locals:
      StackMap stack:
            new com.mongodb.MongoException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no md5 returned from server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* res */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.mongodb.DBObject res
        end local 1 // com.mongodb.DBObject cmd
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/mongodb/gridfs/GridFSFile;
            5   13     1   cmd  Lcom/mongodb/DBObject;
            7   13     2   res  Lcom/mongodb/DBObject;
            9   12     3     m  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public int numChunks();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 109
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.length:J
            l2d
            dstore 1 /* d */
        start local 1 // double d
         1: .line 110
            dload 1 /* d */
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.chunkSize:J
            l2d
            ddiv
            dstore 1 /* d */
         2: .line 111
            dload 1 /* d */
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 1 // double d
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/gridfs/GridFSFile;
            1    3     1     d  D

  public java.lang.Object getId();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 120
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.id:Ljava/lang/Object;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public java.lang.String getFilename();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 129
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.filename:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public java.lang.String getContentType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 138
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.contentType:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public long getLength();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 147
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.length:J
            lreturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public long getChunkSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 156
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.chunkSize:J
            lreturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public java.util.Date getUploadDate();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 165
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.uploadDate:Ljava/util/Date;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public java.util.List<java.lang.String> getAliases();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 175
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            ldc "aliases"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public com.mongodb.DBObject getMetaData();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 184
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            ldc "metadata"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.mongodb.DBObject
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public void setMetaData(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // com.mongodb.DBObject metadata
         0: .line 193
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            ldc "metadata"
            aload 1 /* metadata */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 194
            return
        end local 1 // com.mongodb.DBObject metadata
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/gridfs/GridFSFile;
            0    2     1  metadata  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      metadata  final

  public java.lang.String getMD5();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 204
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.Object put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object v
         0: .line 209
            aload 1 /* key */
            ifnonnull 2
         1: .line 210
            new java.lang.RuntimeException
            dup
            ldc "key should never be null"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 211
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "_id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 212
            aload 0 /* this */
            aload 2 /* v */
            putfield com.mongodb.gridfs.GridFSFile.id:Ljava/lang/Object;
         4: .line 213
            goto 26
      StackMap locals:
      StackMap stack:
         5: aload 1 /* key */
            ldc "filename"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 214
            aload 0 /* this */
            aload 2 /* v */
            ifnonnull 7
            aconst_null
            goto 8
      StackMap locals:
      StackMap stack: com.mongodb.gridfs.GridFSFile
         7: aload 2 /* v */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals: com.mongodb.gridfs.GridFSFile java.lang.String java.lang.Object
      StackMap stack: com.mongodb.gridfs.GridFSFile java.lang.String
         8: putfield com.mongodb.gridfs.GridFSFile.filename:Ljava/lang/String;
         9: .line 215
            goto 26
      StackMap locals:
      StackMap stack:
        10: aload 1 /* key */
            ldc "contentType"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 216
            aload 0 /* this */
            aload 2 /* v */
            checkcast java.lang.String
            putfield com.mongodb.gridfs.GridFSFile.contentType:Ljava/lang/String;
        12: .line 217
            goto 26
      StackMap locals:
      StackMap stack:
        13: aload 1 /* key */
            ldc "length"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 218
            aload 0 /* this */
            aload 2 /* v */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.longValue:()J
            putfield com.mongodb.gridfs.GridFSFile.length:J
        15: .line 219
            goto 26
      StackMap locals:
      StackMap stack:
        16: aload 1 /* key */
            ldc "chunkSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 220
            aload 0 /* this */
            aload 2 /* v */
            checkcast java.lang.Number
            invokevirtual java.lang.Number.longValue:()J
            putfield com.mongodb.gridfs.GridFSFile.chunkSize:J
        18: .line 221
            goto 26
      StackMap locals:
      StackMap stack:
        19: aload 1 /* key */
            ldc "uploadDate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 222
            aload 0 /* this */
            aload 2 /* v */
            checkcast java.util.Date
            putfield com.mongodb.gridfs.GridFSFile.uploadDate:Ljava/util/Date;
        21: .line 223
            goto 26
      StackMap locals:
      StackMap stack:
        22: aload 1 /* key */
            ldc "md5"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        23: .line 224
            aload 0 /* this */
            aload 2 /* v */
            checkcast java.lang.String
            putfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
        24: .line 225
            goto 26
        25: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            aload 1 /* key */
            aload 2 /* v */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            areturn
        end local 2 // java.lang.Object v
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0   27     1   key  Ljava/lang/String;
            0   27     2     v  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final
      v     final

  public java.lang.Object get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.lang.String key
         0: .line 233
            aload 1 /* key */
            ifnonnull 2
         1: .line 234
            new java.lang.IllegalArgumentException
            dup
            ldc "Key should never be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 235
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "_id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 236
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.id:Ljava/lang/Object;
            areturn
         4: .line 237
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "filename"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 238
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.filename:Ljava/lang/String;
            areturn
         6: .line 239
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "contentType"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 240
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.contentType:Ljava/lang/String;
            areturn
         8: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "length"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 242
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.length:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        10: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "chunkSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 244
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.chunkSize:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        12: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "uploadDate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 246
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.uploadDate:Ljava/util/Date;
            areturn
        14: .line 247
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "md5"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 248
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.md5:Ljava/lang/String;
            areturn
        16: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            aload 1 /* key */
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0   17     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final

  public boolean containsKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.lang.String key
         0: .line 256
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual com.mongodb.gridfs.GridFSFile.containsField:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    1     1   key  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      key   final

  public boolean containsField(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.lang.String s
         0: .line 261
            aload 0 /* this */
            invokevirtual com.mongodb.gridfs.GridFSFile.keySet:()Ljava/util/Set;
            aload 1 /* s */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String s
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    1     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     final

  public java.util.Set<java.lang.String> keySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 266
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* keys */
        start local 1 // java.util.Set keys
         1: .line 267
            aload 1 /* keys */
            getstatic com.mongodb.gridfs.GridFSFile.VALID_FIELDS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 268
            aload 1 /* keys */
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.extra:Lcom/mongodb/DBObject;
            invokeinterface com.mongodb.DBObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 269
            aload 1 /* keys */
            areturn
        end local 1 // java.util.Set keys
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/gridfs/GridFSFile;
            1    4     1  keys  Ljava/util/Set<Ljava/lang/String;>;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public boolean isPartialObject();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 274
            iconst_0
            ireturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public void markAsPartialObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 279
            new com.mongodb.MongoException
            dup
            ldc "Can't load partial GridFSFile file"
            invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 285
            aload 0 /* this */
            invokestatic com.mongodb.util.JSON.serialize:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  protected void setGridFS(com.mongodb.gridfs.GridFS);
    descriptor: (Lcom/mongodb/gridfs/GridFS;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // com.mongodb.gridfs.GridFS fs
         0: .line 294
            aload 0 /* this */
            aload 1 /* fs */
            putfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
         1: .line 295
            return
        end local 1 // com.mongodb.gridfs.GridFS fs
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    2     1    fs  Lcom/mongodb/gridfs/GridFS;
    MethodParameters:
      Name  Flags
      fs    final

  protected com.mongodb.gridfs.GridFS getGridFS();
    descriptor: ()Lcom/mongodb/gridfs/GridFS;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 303
            aload 0 /* this */
            getfield com.mongodb.gridfs.GridFSFile.fs:Lcom/mongodb/gridfs/GridFS;
            areturn
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;

  public void putAll(org.bson.BSONObject);
    descriptor: (Lorg/bson/BSONObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // org.bson.BSONObject o
         0: .line 308
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // org.bson.BSONObject o
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    1     1     o  Lorg/bson/BSONObject;
    MethodParameters:
      Name  Flags
      o     final

  public void putAll(java.util.Map);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.util.Map m
         0: .line 313
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.util.Map m
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    1     1     m  Ljava/util/Map;
    MethodParameters:
      Name  Flags
      m     final

  public java.util.Map<?, ?> toMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.gridfs.GridFSFile this
         0: .line 318
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
    Signature: ()Ljava/util/Map<**>;

  public java.lang.Object removeField(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.gridfs.GridFSFile this
        start local 1 // java.lang.String key
         0: .line 323
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.gridfs.GridFSFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/gridfs/GridFSFile;
            0    1     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   final
}
SourceFile: "GridFSFile.java"