Skip to content

Commit 8af53cb

Browse files
chacalTuomas Huhtanen
authored andcommitted
Inject GridFS instance into GridFSFiles returned by getFileList methods.
Wraps returned DBCursor with GridFSCursor that uses _fix to inject GridFS instance into GridFSFiles returned by calling next().
1 parent 71fc9ae commit 8af53cb

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/main/com/mongodb/gridfs/GridFS.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,9 @@
2626
import java.util.ArrayList;
2727
import java.util.List;
2828

29+
import com.mongodb.*;
2930
import org.bson.types.ObjectId;
3031

31-
import com.mongodb.BasicDBObject;
32-
import com.mongodb.BasicDBObjectBuilder;
33-
import com.mongodb.DB;
34-
import com.mongodb.DBCollection;
35-
import com.mongodb.DBCursor;
36-
import com.mongodb.DBObject;
37-
3832
/**
3933
* Implementation of GridFS v1.0
4034
*
@@ -95,14 +89,25 @@ public GridFS(DB db, String bucket) {
9589
// ------ utils -------
9690
// --------------------------
9791

92+
protected class GridFSCursor extends DBCursor {
93+
public GridFSCursor(DBCollection collection , DBObject q , DBObject k, ReadPreference preference ){
94+
super(collection, q, k, preference);
95+
}
96+
97+
@Override
98+
public DBObject next() throws MongoException {
99+
DBObject obj = super.next();
100+
return _fix(obj);
101+
}
102+
}
98103

99104
/**
100105
* gets the list of files stored in this gridfs, sorted by filename
101106
*
102107
* @return cursor of file objects
103108
*/
104109
public DBCursor getFileList(){
105-
return _filesCollection.find().sort(new BasicDBObject("filename",1));
110+
return new GridFSCursor(_filesCollection, new BasicDBObject(), null, null).sort(new BasicDBObject("filename", 1));
106111
}
107112

108113
/**
@@ -112,7 +117,7 @@ public DBCursor getFileList(){
112117
* @return cursor of file objects
113118
*/
114119
public DBCursor getFileList( DBObject query ){
115-
return _filesCollection.find( query ).sort(new BasicDBObject("filename",1));
120+
return new GridFSCursor(_filesCollection, query, null, null).sort(new BasicDBObject("filename", 1));
116121
}
117122

118123

0 commit comments

Comments
 (0)