From: Stephen Kitt Date: Mon, 23 Jul 2018 15:31:33 +0000 (+0200) Subject: Simplify code using Java 8 features X-Git-Tag: v4.0.3~36^2~83 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=44757c1d5d1603a12a2203be32c2ffdb2d2520f7;p=yangtools.git Simplify code using Java 8 features * List::sort * lambda expressions * Comparator::comparing... * Collection::removeIf * method references * Map::computeIfAbsent * Map::merge Change-Id: I1793591c071c7ce5465939afe8b4846b769b5953 Signed-off-by: Stephen Kitt --- diff --git a/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java b/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java index 87f0e9890e..4b7f854608 100644 --- a/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java +++ b/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java @@ -12,7 +12,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import com.google.common.cache.RemovalListener; import com.google.common.cache.RemovalNotification; import com.google.common.io.ByteSource; import java.io.IOException; @@ -49,8 +48,7 @@ public final class MessageAssembler implements AutoCloseable { stateCache = CacheBuilder.newBuilder() .expireAfterAccess(builder.expireStateAfterInactivityDuration, builder.expireStateAfterInactivityUnit) - .removalListener((RemovalListener) notification -> - stateRemoved(notification)).build(); + .removalListener(this::stateRemoved).build(); } /** diff --git a/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java b/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java index 5f75e495af..ca2441e438 100644 --- a/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java +++ b/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java @@ -16,7 +16,6 @@ import com.google.common.cache.RemovalNotification; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; -import java.util.Iterator; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; @@ -55,7 +54,7 @@ public class MessageSlicer implements AutoCloseable { this.logContext = builder.logContext + "_slicer-id-" + id; CacheBuilder> cacheBuilder = - CacheBuilder.newBuilder().removalListener(notification -> stateRemoved(notification)); + CacheBuilder.newBuilder().removalListener(this::stateRemoved); if (builder.expireStateAfterInactivityDuration > 0) { cacheBuilder = cacheBuilder.expireAfterAccess(builder.expireStateAfterInactivityDuration, builder.expireStateAfterInactivityUnit); @@ -206,12 +205,8 @@ public class MessageSlicer implements AutoCloseable { * @param filter filters by Identifier */ public void cancelSlicing(@Nonnull final Predicate filter) { - final Iterator iter = stateCache.asMap().keySet().iterator(); - while (iter.hasNext()) { - if (filter.test(iter.next().getClientIdentifier())) { - iter.remove(); - } - } + stateCache.asMap().keySet().removeIf( + messageSliceIdentifier -> filter.test(messageSliceIdentifier.getClientIdentifier())); } private static MessageSlice getNextSliceMessage(final SlicedMessageState state) throws IOException {