예제 #1
0
 @Override
 public Long getMtime(Coll<?> coll, String id) {
   DBCollection dbcoll = fixColl(coll);
   BasicDBObject found =
       (BasicDBObject) dbcoll.findOne(new BasicDBObject(ID_FIELD, id), dboKeysMtime);
   if (found == null) return null;
   if (!found.containsField(MTIME_FIELD))
     return null; // This should not happen! But better to ignore than crash?
   return found.getLong(MTIME_FIELD);
 }
예제 #2
0
  @Override
  public Map<String, Long> getId2mtime(Coll<?> coll) {
    Map<String, Long> ret = null;

    DBCollection dbcoll = fixColl(coll);

    DBCursor cursor = dbcoll.find(dboEmpty, dboKeysIdandMtime);
    try {
      ret = new HashMap<String, Long>(cursor.count());
      while (cursor.hasNext()) {
        BasicDBObject raw = (BasicDBObject) cursor.next();
        Object remoteId = raw.get(ID_FIELD);
        if (!raw.containsField(MTIME_FIELD))
          continue; // This should not happen! But better to ignore than crash?
        Long mtime = raw.getLong(MTIME_FIELD);
        ret.put(remoteId.toString(), mtime);
      }
    } finally {
      cursor.close();
    }

    return ret;
  }