
com.crawljax.web.model.CrawlRecords Maven / Gradle / Ivy
The newest version!
package com.crawljax.web.model;
import java.util.ArrayList;
import java.util.List;
import com.crawljax.web.fs.WorkDirManager;
import com.crawljax.web.model.CrawlRecord.CrawlStatusType;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
public class CrawlRecords {
private final List crawlList;
private final WorkDirManager workDirManager;
private final Configurations configurations;
private int identity = 0;
@Inject
public CrawlRecords(WorkDirManager workDirManager, Configurations configurations) {
this.workDirManager = workDirManager;
this.configurations = configurations;
crawlList = this.workDirManager.loadCrawlRecords();
if (crawlList.size() > 0)
identity = crawlList.get(0).getId();
}
/**
* @return the crawlRecords
*/
public List getCrawlList() {
return crawlList;
}
public List getCrawlListByConfigID(String configId) {
List configRecordList = new ArrayList();
for (CrawlRecord r : crawlList) {
if (r.getConfigurationId().equals(configId))
configRecordList.add(r);
}
return configRecordList;
}
public List getActiveCrawlList() {
List recordList = new ArrayList();
for (CrawlRecord r : crawlList) {
if (r.getCrawlStatus() == CrawlStatusType.queued
|| r.getCrawlStatus() == CrawlStatusType.running
|| r.getCrawlStatus() == CrawlStatusType.initializing) {
recordList.add(0, r);
}
}
return recordList;
}
public CrawlRecord findByID(int id) {
CrawlRecord record = null;
for (CrawlRecord r : crawlList) {
if (r.getId() == id) {
record = r;
break;
}
}
return record;
}
public CrawlRecord add(String configId) {
CrawlRecord r = new CrawlRecord();
r.setId(++identity);
r.setConfigurationId(configId);
r.setConfigurationName(configurations.findByID(configId).getName());
crawlList.add(0, r);
workDirManager.saveCrawlRecord(r);
return r;
}
public CrawlRecord update(CrawlRecord record) {
// assuming we are not updating from client side and can use same reference
workDirManager.saveCrawlRecord(record);
return record;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy