package uk.bl.monitrix.database.cassandra.model;
import java.util.Date;
import com.datastax.driver.core.Row;
import uk.bl.monitrix.database.cassandra.CassandraProperties;
import uk.bl.monitrix.model.CrawlLogEntry;
/**
* A CassandraDB-backed implementation of {@link CrawlLogEntry}.
* @author Rainer Simon <rainer.simon@ait.ac.at>
*/
public class CassandraCrawlLogEntry extends CrawlLogEntry {
private Row row;
public CassandraCrawlLogEntry(Row row) {
this.row = row;
}
@Override
public String getLogId() {
return (String) row.getString(CassandraProperties.FIELD_CRAWL_LOG_LOG_ID);
}
@Override
public Date getLogTimestamp() {
return new Date(row.getLong(CassandraProperties.FIELD_CRAWL_LOG_LONG_TIMESTAMP));
}
@Override
public int getHTTPCode() {
return row.getInt(CassandraProperties.FIELD_CRAWL_LOG_STATUS_CODE);
}
@Override
public long getDownloadSize() {
return row.getLong(CassandraProperties.FIELD_CRAWL_LOG_DOWNLOADED_BYTES);
}
@Override
public String getURL() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_URL);
}
@Override
public String getHost() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_HOST);
}
@Override
public String getDomain() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_DOMAIN);
}
@Override
public String getSubdomain() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_SUBDOMAIN);
}
@Override
public String getBreadcrumbCodes() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_DISCOVERY_PATH);
}
@Override
public String getReferrer() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_REFERER);
}
@Override
public String getContentType() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_CONTENT_TYPE);
}
@Override
public String getWorkerThread() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_WORKER_THREAD);
}
@Override
public Date getFetchTimestamp() {
return new Date(row.getLong(CassandraProperties.FIELD_CRAWL_LOG_FETCH_TS));
}
@Override
public int getFetchDuration() {
// return row.getInt("fetch_duration");
return 0;
}
@Override
public String getSHA1Hash() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_HASH);
}
@Override
public String getAnnotations() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_ANNOTATIONS);
}
@Override
public int getRetries() {
// TODO
// return row.getInt(CassandraProperties.FIELD_CRAWL_LOG_RETRIES);
return 0;
}
@Override
public double getCompressability() {
// TODO
// return row.getDouble(CassandraProperties.FIELD_CRAWL_LOG_COMPRESSABILITY);
return 0;
}
@Override
public String toString() {
return row.getString(CassandraProperties.FIELD_CRAWL_LOG_LINE);
}
}