Given I have the following
Map
writeMetadata(...)
Map<Report, TransferStatus> transferStatusMap = sftpService.transfer(reportDeliverables);
dbMetadataWriter.writeMetadata(successReports);
ENUM
public enum TransferStatus {
SUCCESS,
FAILURE
}
successReport
Report
TransferStatus.SUCCESS
dbMetadataWriter.writeMetadata(successReports);
List<Report> successReports = transferStatusMap.entrySet()
.stream()
.filter(e -> e.getValue() == TransferStatus.SUCCESS)
.map(Entry::getKey)
.collect(Collectors.toList());
if(!reports.isEmpty()){
dbMetadataWriter.writeMetadata(successReports);
}
Or you could collect them both to a Map
:
Map<TransferStatus, List<Report>> map =
transferStatusMap.entrySet()
.stream()
.collect(Collectors.groupingBy(
Entry::getValue,
Collectors.mapping(Entry::getKey, Collectors.toList()));