package org.archive.cdxserver.processor;
import java.util.LinkedList;
import org.archive.format.cdx.CDXLine;
public class ReverseRevisitResolver extends RevisitResolver {
public ReverseRevisitResolver(
BaseProcessor output,
boolean showDupeCount) {
super(output, showDupeCount);
}
class RevisitTrack extends DupeTrack {
LinkedList<CDXLine> lines;
void add(CDXLine line)
{
if (lines == null) {
lines = new LinkedList<CDXLine>();
}
lines.add(line);
}
void fillRevisits(CDXLine origLine)
{
if (lines != null) {
for (CDXLine revisitLine : lines) {
ReverseRevisitResolver.this.fillRevisit(revisitLine, origLine);
}
lines.clear();
}
}
}
@Override
protected DupeTrack createDupeTrack()
{
return new RevisitTrack();
}
@Override
protected void handleLine(DupeTrack counter, CDXLine line, boolean isDupe) {
RevisitTrack revisits = (RevisitTrack)counter;
super.fillBlankOrig(line);
if (isRevisit(line)) {
revisits.add(line);
} else {
revisits.fillRevisits(line);
}
}
}