package controllers.mapping;
import java.util.AbstractList;
import java.util.List;
import uk.bl.monitrix.heritrix.api.HeritrixSummary;
import uk.bl.monitrix.heritrix.api.HeritrixSummary.HeapReport;
import uk.bl.monitrix.heritrix.api.HeritrixSummary.Job;
public class HeritrixSummaryMapper {
public String heritrix_version;
public String jobs_dir;
public HeapReportMapper heap_report;
public List<JobMapper> jobs;
public HeritrixSummaryMapper(HeritrixSummary summary) {
this.heritrix_version = summary.getHeritrixVersion();
this.jobs_dir = summary.getJobsDir();
this.heap_report = new HeapReportMapper(summary.getHeapReport());
// *sigh*
final List<Job> jobList = summary.getJobs();
this.jobs = new AbstractList<JobMapper>() {
@Override
public JobMapper get(int index) {
return new JobMapper(jobList.get(index));
}
@Override
public int size() {
return jobList.size();
}
};
}
class HeapReportMapper {
public long used_bytes;
public long total_bytes;
public long max_bytes;
HeapReportMapper(HeapReport report) {
this.used_bytes = report.getUsedBytes();
this.total_bytes = report.getTotalBytes();
this.max_bytes = report.getMaxBytes();
}
}
class JobMapper {
public String short_name;
public String url;
public boolean is_profile;
public int launch_count;
public String crawl_controller_state;
JobMapper(Job job) {
this.short_name = job.getShortName();
this.url = job.getUrl();
this.is_profile = job.isProfile();
this.launch_count = job.getLaunchCount();
this.crawl_controller_state = job.getCrawlControllerState();
}
}
}