package org.archive.wayback.resourceindex.cdxserver;
import org.archive.cdxserver.CDXQuery;
import org.archive.cdxserver.processor.GroupCountProcessor;
import org.archive.format.cdx.CDXLine;
import org.archive.wayback.core.SearchResults;
import org.archive.wayback.core.UrlSearchResult;
import org.archive.wayback.core.UrlSearchResults;
public class CDXToUrlSearchResultWriter extends CDXToSearchResultWriter {
/**
* Initialize with query parameters.
* @param query CDXQuery
*/
public CDXToUrlSearchResultWriter(CDXQuery query) {
super(query);
}
UrlSearchResults results;
int count;
@Override
public void begin() {
results = new UrlSearchResults();
count = 0;
}
@Override
public int writeLine(CDXLine line) {
UrlSearchResult result = new UrlSearchResult();
result.setUrlKey(line.getUrlKey());
result.setOriginalUrl(line.getOriginalUrl());
result.setFirstCapture(line.getTimestamp());
result.setLastCapture(line.getField(GroupCountProcessor.endtimestamp));
result.setNumCaptures(line.getField(GroupCountProcessor.groupcount));
result.setNumVersions(line.getField(GroupCountProcessor.uniqcount));
results.addSearchResult(result);
++count;
return 1;
}
@Override
public void end() {
results.setReturnedCount(count);
results.setMatchingCount(count);
}
@Override
public SearchResults getSearchResults() {
return results;
}
}