From: Stephen Kitt Date: Tue, 16 May 2017 15:50:43 +0000 (+0200) Subject: sal-binding-broker: use lambdas X-Git-Tag: release/nitrogen~215 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=1da4f8be48cca9621b790c486528bb28c1cae0c7 sal-binding-broker: use lambdas This series of patches uses lambdas instead of anonymous classes for functional interfaces when possible. Lambdas are replaced with method references when appropriate. Change-Id: I17f1fd2a8964cec80d35888f437ea098caa9430a Signed-off-by: Stephen Kitt --- diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/ListenerMapGeneration.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/ListenerMapGeneration.java index f59783883b..7ca35aa66b 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/ListenerMapGeneration.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/compat/ListenerMapGeneration.java @@ -12,15 +12,14 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.stream.Collectors; import org.opendaylight.yangtools.yang.binding.Notification; -import com.google.common.base.Predicate; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; /** @@ -93,14 +92,8 @@ final class ListenerMapGeneration { private static Iterable> getNotificationTypes(final Class cls) { final Class[] ifaces = cls.getInterfaces(); - return Iterables.filter(Arrays.asList(ifaces), new Predicate>() { - @Override - public boolean apply(final Class input) { - if (Notification.class.equals(input)) { - return false; - } - return Notification.class.isAssignableFrom(input); - } - }); + return Arrays.stream(ifaces) + .filter(input -> !Notification.class.equals(input) && Notification.class.isAssignableFrom(input)) + .collect(Collectors.toList()); } } \ No newline at end of file diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java index 6845dd4f1b..c78db4ba8e 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMDataBrokerAdapter.java @@ -40,7 +40,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject; public class BindingDOMDataBrokerAdapter extends AbstractForwardedDataBroker implements DataBroker, DataTreeChangeService { - static final Factory BUILDER_FACTORY = () -> new Builder(); + static final Factory BUILDER_FACTORY = Builder::new; private final DataTreeChangeService treeChangeService; public BindingDOMDataBrokerAdapter(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec) { diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationPublishServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationPublishServiceAdapter.java index 83fa1969d9..6f7e9e2c35 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationPublishServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationPublishServiceAdapter.java @@ -21,14 +21,7 @@ import org.opendaylight.yangtools.yang.binding.Notification; public class BindingDOMNotificationPublishServiceAdapter implements NotificationPublishService, AutoCloseable { - static final Factory BUILDER_FACTORY = new BindingDOMAdapterBuilder.Factory() { - - @Override - public BindingDOMAdapterBuilder newBuilder() { - return new Builder(); - } - - }; + static final Factory BUILDER_FACTORY = Builder::new; private final BindingToNormalizedNodeCodec codecRegistry; private final DOMNotificationPublishService domPublishService; diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationServiceAdapter.java index 793ffedf9b..78a22f8a71 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMNotificationServiceAdapter.java @@ -21,14 +21,7 @@ import org.opendaylight.yangtools.yang.binding.NotificationListener; public class BindingDOMNotificationServiceAdapter implements NotificationService, AutoCloseable { - public static final Factory BUILDER_FACTORY = new Factory() { - - @Override - public BindingDOMAdapterBuilder newBuilder() { - return new Builder(); - } - - }; + public static final Factory BUILDER_FACTORY = Builder::new; private final BindingNormalizedNodeSerializer codec; private final DOMNotificationService domNotifService; diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java index 8ebc5e6837..26e696d1c7 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcServiceAdapter.java @@ -23,14 +23,7 @@ import org.opendaylight.yangtools.yang.binding.util.BindingReflections; public class BindingDOMRpcServiceAdapter implements RpcConsumerRegistry { - protected static final Factory BUILDER_FACTORY = new Factory() { - - @Override - public BindingDOMAdapterBuilder newBuilder() { - return new Builder(); - } - - }; + protected static final Factory BUILDER_FACTORY = Builder::new; private final LoadingCache, RpcServiceAdapter> proxies = CacheBuilder.newBuilder() .weakKeys() diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java index 81aa46133a..c6ea9db3d8 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java @@ -131,19 +131,16 @@ class RpcServiceAdapter implements InvocationHandler { private static ListenableFuture> transformFuture(final SchemaPath rpc, final ListenableFuture domFuture, final BindingNormalizedNodeSerializer codec) { - return Futures.transform(domFuture, new Function>() { - @Override - public RpcResult apply(final DOMRpcResult input) { - final NormalizedNode domData = input.getResult(); - final DataObject bindingResult; - if (domData != null) { - final SchemaPath rpcOutput = rpc.createChild(QName.create(rpc.getLastComponent(), "output")); - bindingResult = codec.fromNormalizedNodeRpcData(rpcOutput, (ContainerNode) domData); - } else { - bindingResult = null; - } - return RpcResult.class.cast(RpcResultBuilder.success(bindingResult).build()); + return Futures.transform(domFuture, (Function>) input -> { + final NormalizedNode domData = input.getResult(); + final DataObject bindingResult; + if (domData != null) { + final SchemaPath rpcOutput = rpc.createChild(QName.create(rpc.getLastComponent(), "output")); + bindingResult = codec.fromNormalizedNodeRpcData(rpcOutput, (ContainerNode) domData); + } else { + bindingResult = null; } + return RpcResult.class.cast(RpcResultBuilder.success(bindingResult).build()); }); } diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolder.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolder.java index 2ca3530a74..bbe5036d79 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolder.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/SingletonHolder.java @@ -16,7 +16,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -89,17 +88,14 @@ public class SingletonHolder { final ThreadPoolExecutor executor = new ThreadPoolExecutor(CORE_NOTIFICATION_THREADS, MAX_NOTIFICATION_THREADS, NOTIFICATION_THREAD_LIFE, TimeUnit.SECONDS, queue, factory, - new RejectedExecutionHandler() { - // if the max threads are met, then it will raise a rejectedExecution. We then push to the queue. - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor executor) { - try { - executor.getQueue().put(r); - } catch (final InterruptedException e) { - throw new RejectedExecutionException("Interrupted while waiting on the queue", e); - } - } - }); + // if the max threads are met, then it will raise a rejectedExecution. We then push to the queue. + (r, executor1) -> { + try { + executor1.getQueue().put(r); + } catch (final InterruptedException e) { + throw new RejectedExecutionException("Interrupted while waiting on the queue", e); + } + }); NOTIFICATION_EXECUTOR = MoreExecutors.listeningDecorator(executor); } diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/BindingNormalizedCodecTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/BindingNormalizedCodecTest.java index b0b740f07c..567c176897 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/BindingNormalizedCodecTest.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/BindingNormalizedCodecTest.java @@ -96,18 +96,15 @@ public class BindingNormalizedCodecTest extends AbstractSchemaAwareTest { final CountDownLatch done = new CountDownLatch(1); final AtomicReference yangId = new AtomicReference<>(); final AtomicReference error = new AtomicReference<>(); - new Thread() { - @Override - public void run() { - try { - yangId.set(BindingNormalizedCodecTest.this.codec.toYangInstanceIdentifierBlocking(BA_TOP_LEVEL_LIST)); - } catch(final RuntimeException e) { - error.set(e); - } finally { - done.countDown(); - } + new Thread(() -> { + try { + yangId.set(BindingNormalizedCodecTest.this.codec.toYangInstanceIdentifierBlocking(BA_TOP_LEVEL_LIST)); + } catch(final RuntimeException e) { + error.set(e); + } finally { + done.countDown(); } - }.start(); + }).start(); Uninterruptibles.sleepUninterruptibly(500, TimeUnit.MILLISECONDS); this.codec.onGlobalContextUpdated(this.context); @@ -136,18 +133,15 @@ public class BindingNormalizedCodecTest extends AbstractSchemaAwareTest { final CountDownLatch done = new CountDownLatch(1); final AtomicReference> retMap = new AtomicReference<>(); final AtomicReference error = new AtomicReference<>(); - new Thread() { - @Override - public void run() { - try { - retMap.set(BindingNormalizedCodecTest.this.codec.getRpcMethodToSchemaPath(OpendaylightTestRpcServiceService.class)); - } catch(final RuntimeException e) { - error.set(e); - } finally { - done.countDown(); - } + new Thread(() -> { + try { + retMap.set(BindingNormalizedCodecTest.this.codec.getRpcMethodToSchemaPath(OpendaylightTestRpcServiceService.class)); + } catch(final RuntimeException e) { + error.set(e); + } finally { + done.countDown(); } - }.start(); + }).start(); Uninterruptibles.sleepUninterruptibly(500, TimeUnit.MILLISECONDS); this.codec.onGlobalContextUpdated(this.context); diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/ConstantSchemaAbstractDataBrokerTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/ConstantSchemaAbstractDataBrokerTest.java index dd3020d030..5c09a4f863 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/ConstantSchemaAbstractDataBrokerTest.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/test/ConstantSchemaAbstractDataBrokerTest.java @@ -20,7 +20,7 @@ public class ConstantSchemaAbstractDataBrokerTest extends AbstractConcurrentData @Override protected SchemaContext getSchemaContext() throws Exception { - return SchemaContextSingleton.getSchemaContext(() -> super.getSchemaContext()); + return SchemaContextSingleton.getSchemaContext(super::getSchemaContext); } }