Optimize getFilterInstance() 27/102427/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Sep 2022 10:02:23 +0000 (12:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Sep 2022 10:40:57 +0000 (12:40 +0200)
This is a purely-private method, there is no point in using a Stream
where a nullable object suffices.

Change-Id: Ibcec056f3235022ffb4f7b2814d5e5250d436eed
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java

index 4848c240c927b9b589bc14c354bcff3d87a32916..557f3b16ce151e87868544388dd20cd4819486d8 100644 (file)
@@ -19,9 +19,9 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.stream.Stream;
 import javax.servlet.Filter;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletContext;
@@ -174,28 +174,25 @@ public final class CustomFilterAdapterConfigurationImpl implements CustomFilterA
      */
     private ImmutableList<Filter> convertCustomFilterList(final Optional<ServletContext> listenerServletContext) {
         return Streams.concat(namedFilterDTOs.stream(), instanceFilterDTOs.stream())
-            .flatMap(filter -> getFilterInstance(filter, listenerServletContext))
+            .map(filter -> getFilterInstance(filter, listenerServletContext))
+            .filter(Objects::nonNull)
             .collect(ImmutableList.toImmutableList());
     }
 
     /**
      * Utility method used to create and initialize a Filter from a FilterDTO.
      *
-     * @param customFilter
-     *            DTO containing Filter and properties path, if one exists.
-     * @param servletContext
-     *            Scoped to the listener
-     * @return A Stream containing the Filter, or empty if one cannot be instantiated.
+     * @param customFilter DTO containing Filter and properties path, if one exists.
+     * @param servletContext Scoped to the listener
+     * @return The Filter, or null
      */
-    private static Stream<Filter> getFilterInstance(final FilterDTO customFilter,
+    private static @Nullable Filter getFilterInstance(final FilterDTO customFilter,
             final Optional<ServletContext> servletContext) {
-        final Filter filter = customFilter.getInstance(servletContext);
+        final var filter = customFilter.getInstance(servletContext);
         if (filter != null) {
             LOG.info("Successfully loaded custom Filter {} for context {}", filter, servletContext);
-            return Stream.of(filter);
         }
-
-        return Stream.empty();
+        return filter;
     }
 
     /**