class WmfDumpFileManager {

	public List<MwDumpFile> findAllRelevantRevisionDumps(boolean preferCurrent) {
		MwDumpFile mainDump;
		if (preferCurrent) {
			mainDump = findMostRecentDump(DumpContentType.CURRENT);
		} else {
			mainDump = findMostRecentDump(DumpContentType.FULL);
		}
		if (mainDump == null) {
			return findAllDumps(DumpContentType.DAILY);
		}

		List<MwDumpFile> result = new ArrayList<>();

		for (MwDumpFile dumpFile : findAllDumps(DumpContentType.DAILY)) {
			if (dumpFile.getDateStamp().compareTo(mainDump.getDateStamp()) > 0) {
				result.add(dumpFile);
			}
		}

		result.add(mainDump);

		if (logger.isInfoEnabled()) {
			StringBuilder logMessage = new StringBuilder();
			logMessage.append("Found ")
					.append(result.size())
					.append(" relevant dumps to process:");
			for (MwDumpFile dumpFile : result) {
				logMessage.append("\n * ").append(dumpFile.toString());
			}
			logger.info(logMessage.toString());
		}

		return result;
	}

	public  WmfDumpFileManager(String projectName,
			DirectoryManager downloadDirectoryManager,
			WebResourceFetcher webResourceFetcher);

}