diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java index ab5ccada1414..927279c57347 100644 --- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java +++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java @@ -24,7 +24,6 @@ */ package com.iluwatar.abstractdocument; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; @@ -39,7 +38,7 @@ public abstract class AbstractDocument implements Document { protected AbstractDocument(Map properties) { Objects.requireNonNull(properties, "properties map is required"); this.documentProperties = properties; - } + } // indentation fixed @Override public Void put(String key, Object value) { @@ -52,15 +51,19 @@ public Object get(String key) { return documentProperties.get(key); } + @SuppressWarnings("unchecked") @Override public Stream children(String key, Function, T> childConstructor) { - return Stream.ofNullable(get(key)) - .filter(Objects::nonNull) - .map(el -> (List>) el) - .findAny() - .stream() - .flatMap(Collection::stream) - .map(childConstructor); + Object value = get(key); + if (value instanceof List) { + return ((List) value) + .stream() + .filter( + e -> e instanceof Map) // Only keeping items that are actually maps before casting + .map(e -> (Map) e) + .map(childConstructor); + } + return Stream.empty(); } @Override diff --git "a/tyle\357\200\272 apply spotless formatting\357\200\242" "b/tyle\357\200\272 apply spotless formatting\357\200\242" new file mode 100644 index 000000000000..b918ee5ee06b --- /dev/null +++ "b/tyle\357\200\272 apply spotless formatting\357\200\242" @@ -0,0 +1,37 @@ +diff --git a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java +index 41bfb2353..55584d94d 100644 +--- a/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java ++++ b/abstract-document/src/main/java/com/iluwatar/abstractdocument/AbstractDocument.java +@@ -51,19 +51,20 @@ public abstract class AbstractDocument implements Document { + return documentProperties.get(key); + } +  +-@SuppressWarnings("unchecked") +-@Override +-public Stream children(String key, Function, T> childConstructor) { +- Object value = get(key); +- if (value instanceof List) { +- return ((List) value).stream() +- .filter(e -> e instanceof Map) // Only keeping items that are actually maps before casting +- .map(e -> (Map) e) +- .map(childConstructor); ++ @SuppressWarnings("unchecked") ++ @Override ++ public Stream children(String key, Function, T> childConstructor) { ++ Object value = get(key); ++ if (value instanceof List) { ++ return ((List) value) ++ .stream() ++ .filter( ++ e -> e instanceof Map) // Only keeping items that are actually maps before casting ++ .map(e -> (Map) e) ++ .map(childConstructor); ++ } ++ return Stream.empty(); + } +- return Stream.empty(); +-} +- +  + @Override + public String toString() {