Use flatMap to simplify map operations (#4190)

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
This commit is contained in:
Holger Friedrich
2024-04-20 19:15:06 +02:00
committed by GitHub
parent dc17296e07
commit 0db45fa168
3 changed files with 4 additions and 5 deletions
@@ -239,8 +239,8 @@ public abstract class AbstractScriptFileWatcher implements WatchService.WatchEve
} }
private CompletableFuture<Void> addFiles(Collection<Path> files) { private CompletableFuture<Void> addFiles(Collection<Path> files) {
return CompletableFuture.allOf(files.stream().map(this::getScriptFileReference).filter(Optional::isPresent) return CompletableFuture.allOf(files.stream().map(this::getScriptFileReference).flatMap(Optional::stream)
.map(Optional::get).sorted().map(this::addScriptFileReference).toArray(CompletableFuture<?>[]::new)); .sorted().map(this::addScriptFileReference).toArray(CompletableFuture<?>[]::new));
} }
private CompletableFuture<Void> addScriptFileReference(ScriptFileReference newRef) { private CompletableFuture<Void> addScriptFileReference(ScriptFileReference newRef) {
@@ -115,8 +115,7 @@ public class Ser2NetUsbSerialDiscovery implements ServiceListener, UsbSerialDisc
Set<UsbSerialDeviceInformation> scanResult = Stream.of(mdnsClient.list(SERVICE_TYPE, SINGLE_SCAN_DURATION)) Set<UsbSerialDeviceInformation> scanResult = Stream.of(mdnsClient.list(SERVICE_TYPE, SINGLE_SCAN_DURATION))
.map(this::createUsbSerialDeviceInformation) // .map(this::createUsbSerialDeviceInformation) //
.filter(Optional::isPresent) // .flatMap(Optional::stream) //
.map(Optional::get) //
.collect(Collectors.toSet()); .collect(Collectors.toSet());
Set<UsbSerialDeviceInformation> added = setDifference(scanResult, lastScanResult); Set<UsbSerialDeviceInformation> added = setDifference(scanResult, lastScanResult);
@@ -413,7 +413,7 @@ public class YamlModelRepositoryImpl implements WatchService.WatchEventListener,
} }
private <T extends YamlElement> List<T> parseJsonNodes(List<JsonNode> nodes, Class<T> elementClass) { private <T extends YamlElement> List<T> parseJsonNodes(List<JsonNode> nodes, Class<T> elementClass) {
return nodes.stream().map(nE -> parseJsonNode(nE, elementClass)).filter(Optional::isPresent).map(Optional::get) return nodes.stream().map(nE -> parseJsonNode(nE, elementClass)).flatMap(Optional::stream)
.filter(YamlElement::isValid).toList(); .filter(YamlElement::isValid).toList();
} }