package games.strategy.engine.framework.map.download;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import games.strategy.util.Version;
public class MapDownloadList {
private final List<DownloadFileDescription> available = new ArrayList<>();
private final List<DownloadFileDescription> installed = new ArrayList<>();
private final List<DownloadFileDescription> outOfDate = new ArrayList<>();
public MapDownloadList(final List<DownloadFileDescription> downloads, final FileSystemAccessStrategy strategy) {
for (final DownloadFileDescription download : downloads) {
if (download == null) {
return;
}
final Optional<Version> mapVersion = strategy.getMapVersion(download.getInstallLocation().getAbsolutePath());
if (mapVersion.isPresent()) {
installed.add(download);
if (download.getVersion() != null && download.getVersion().isGreaterThan(mapVersion.get())) {
outOfDate.add(download);
}
} else {
available.add(download);
}
}
}
public List<DownloadFileDescription> getAvailable() {
return available;
}
public List<DownloadFileDescription> getInstalled() {
return installed;
}
public List<DownloadFileDescription> getOutOfDate() {
return outOfDate;
}
}