package com.aconex.scrutineer;
import java.util.Iterator;
public class DeletionVerifier {
private final IdAndVersionStream primaryStream;
private final ExistenceChecker existenceChecker;
private final IdAndVersionStreamVerifierListener listener;
public DeletionVerifier(IdAndVersionStream primaryStream, ExistenceChecker existenceChecker, IdAndVersionStreamVerifierListener listener) {
this.primaryStream = primaryStream;
this.existenceChecker = existenceChecker;
this.listener = listener;
}
public void verify() {
primaryStream.open();
try {
Iterator<IdAndVersion> iterator = primaryStream.iterator();
iterateAndCheck(iterator);
} finally {
primaryStream.close();
}
}
private void iterateAndCheck(Iterator<IdAndVersion> iterator) {
while (iterator.hasNext()) {
IdAndVersion idAndVersion = iterator.next();
if (existenceChecker.exists(idAndVersion)) {
listener.onMissingInPrimaryStream(idAndVersion);
}
}
}
}