package uk.bl.monitrix.database.mongodb.model;
import com.mongodb.DBObject;
import uk.bl.monitrix.database.mongodb.MongoProperties;
import uk.bl.monitrix.model.CrawlStatsUnit;
/**
* A MongoDB-backed implementation of {@link CrawlStatsUnit}.
* @author Rainer Simon <rainer.simon@ait.ac.at>
*/
public class MongoCrawlStatsUnit extends CrawlStatsUnit {
private DBObject dbo;
public MongoCrawlStatsUnit(DBObject dbo) {
this.dbo = dbo;
}
/**
* Returns the MongoDB entity that's backing this object.
* @return the DBObject
*/
public DBObject getBackingDBO() {
return dbo;
}
@Override
public long getTimestamp() {
return (Long) dbo.get(MongoProperties.FIELD_CRAWL_STATS_TIMESTAMP);
}
public void setTimestamp(long timestamp) {
dbo.put(MongoProperties.FIELD_CRAWL_STATS_TIMESTAMP, timestamp);
}
@Override
public long getDownloadVolume() {
return (Long) dbo.get(MongoProperties.FIELD_CRAWL_STATS_DOWNLOAD_VOLUME);
}
public void setDownloadVolume(long volume) {
dbo.put(MongoProperties.FIELD_CRAWL_STATS_DOWNLOAD_VOLUME, volume);
}
@Override
public long getNumberOfURLsCrawled() {
return (Long) dbo.get(MongoProperties.FIELD_CRAWL_STATS_NUMBER_OF_URLS_CRAWLED);
}
public void setNumberOfURLsCrawled(long numberOfURLs) {
dbo.put(MongoProperties.FIELD_CRAWL_STATS_NUMBER_OF_URLS_CRAWLED, numberOfURLs);
}
@Override
public long getNumberOfNewHostsCrawled() {
return (Long) dbo.get(MongoProperties.FIELD_CRAWL_STATS_NEW_HOSTS_CRAWLED);
}
public void setNumberOfNewHostsCrawled(long newHostsCrawled) {
dbo.put(MongoProperties.FIELD_CRAWL_STATS_NEW_HOSTS_CRAWLED, newHostsCrawled);
}
@Override
public long countCompletedHosts() {
Long count = (Long) dbo.get(MongoProperties.FIELD_CRAWL_STATS_COMPLETED_HOSTS);
if (count == null)
return 0;
return count.intValue();
}
public void setCompletedHosts(long l) {
dbo.put(MongoProperties.FIELD_CRAWL_STATS_COMPLETED_HOSTS, l);
}
}