Simplify code using Java 8 features 88/74588/2
authorStephen Kitt <skitt@redhat.com>
Fri, 27 Jul 2018 15:26:11 +0000 (17:26 +0200)
committerRobert Varga <nite@hq.sk>
Fri, 27 Jul 2018 16:52:22 +0000 (16:52 +0000)
* lambda expressions
* method references
* ThreadLocal::withInitial
* Comparator::comparing
* List::sort
* Map::computeIfAbsent

Change-Id: Ia1eee88a49fe3cb7f07bd90cdaa481ecd5c10003
Signed-off-by: Stephen Kitt <skitt@redhat.com>
25 files changed:
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/AbstractMappedRpcInvokerTest.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/YangSourceDefinition.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/BindingGeneratorUtil.java
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java
binding/mdsal-binding-test-utils/src/main/java/org/opendaylight/mdsal/binding/testutils/XtendYangBeanGenerator.java
binding/mdsal-binding-test-utils/src/test/java/org/opendaylight/mdsal/binding/testutils/ExpectedObjects.java
binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/IdentifiableItemCodec.java
binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/value/ValueTypeCodec.java
binding2/mdsal-binding2-generator-api/src/main/java/org/opendaylight/mdsal/binding/javav2/model/api/YangSourceDefinition.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/AugmentToGenType.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/ModuleToGenType.java
binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/yang/types/TypeProviderImpl.java
binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/BindingGeneratorUtil.java
binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/AbstractGeneratedType.java
binding2/mdsal-binding2-generator-util/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/EnumerationBuilderImpl.java
binding2/mdsal-binding2-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/javav2/java/api/generator/renderers/ClassRenderer.java
common/mdsal-common-api/src/main/java/org/opendaylight/mdsal/common/api/TransactionCommitDeadlockException.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/AbstractDOMRpcRoutingTableEntry.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTreeChangePublisher.java

index 338fb0d935c0ccb7ddc638b9f84110d59c20f414..2e9d1d1bd00c74d8f376d20b52868f75286279d2 100644 (file)
@@ -81,12 +81,8 @@ public class AbstractMappedRpcInvokerTest {
 
         Crate(@Nonnull final RpcService rpcService, @Nullable final DataObject dataObject) {
             this.rpcService = rpcService;
-            this.dataObject = new ThreadLocal<Optional<DataObject>>() {
-                @Override
-                protected Optional<DataObject> initialValue() {
-                    return dataObject == null ? Optional.empty() : Optional.of(dataObject);
-                }
-            };
+            this.dataObject =
+                ThreadLocal.withInitial(() -> dataObject == null ? Optional.empty() : Optional.of(dataObject));
         }
 
         RpcService getRpcService() {
index 051cf3d0c740eb5b8f15dc993f69f5ee85cefff5..e89391524850c9991406fa73e769dbea6e040610 100644 (file)
@@ -61,7 +61,7 @@ abstract class DataObjectCodecContext<D extends DataObject, T extends DataNodeCo
     private static final Logger LOG = LoggerFactory.getLogger(DataObjectCodecContext.class);
     private static final MethodType CONSTRUCTOR_TYPE = MethodType.methodType(void.class, InvocationHandler.class);
     private static final MethodType DATAOBJECT_TYPE = MethodType.methodType(DataObject.class, InvocationHandler.class);
-    private static final Comparator<Method> METHOD_BY_ALPHABET = (o1, o2) -> o1.getName().compareTo(o2.getName());
+    private static final Comparator<Method> METHOD_BY_ALPHABET = Comparator.comparing(Method::getName);
 
     private final ImmutableMap<String, LeafNodeCodecContext<?>> leafChild;
     private final ImmutableMap<YangInstanceIdentifier.PathArgument, NodeContextSupplier> byYang;
index 204396abed4f5c03a7efe6dca386ebf29d212fe9..92185cd2f1537c3ad7c46b5bdf04590dfb34eca0 100644 (file)
@@ -14,7 +14,6 @@ import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -75,7 +74,7 @@ final class IdentifiableItemCodec implements Codec<NodeIdentifierWithPredicates,
         final List<QName> sortedKeys;
         if (unsortedKeys.size() > 1) {
             final List<QName> tmp = new ArrayList<>(unsortedKeys);
-            Collections.sort(tmp, (q1, q2) -> q1.getLocalName().compareToIgnoreCase(q2.getLocalName()));
+            tmp.sort((q1, q2) -> q1.getLocalName().compareToIgnoreCase(q2.getLocalName()));
             sortedKeys = tmp;
         } else {
             sortedKeys = unsortedKeys;
index 3304325602e7e33685b60ef63d3cb92e2a8d6de4..011d66d1546f538ee47535120f0c00984c4d38d4 100644 (file)
@@ -48,9 +48,8 @@ public abstract class YangSourceDefinition {
          * @return defining SchemaNodes, guaranteed to be non-empty
          */
         public List<? extends SchemaNode> getNodes() {
-            return nodes.stream().filter(node -> {
-                return node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null;
-            }).collect(Collectors.toList());
+            return nodes.stream().filter(node -> node instanceof EffectiveStatement
+                && ((EffectiveStatement<?, ?>) node).getDeclared() != null).collect(Collectors.toList());
         }
     }
 
@@ -108,9 +107,8 @@ public abstract class YangSourceDefinition {
 
         if (module instanceof ModuleEffectiveStatement) {
             final ModuleEffectiveStatement effective = (ModuleEffectiveStatement) module;
-            final boolean anyDeclared = nodes.stream().anyMatch(node -> {
-                return node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null;
-            });
+            final boolean anyDeclared = nodes.stream().anyMatch(node ->
+                node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null);
             if (anyDeclared) {
                 return Optional.of(new Multiple(effective, nodes));
             }
index 306726b674f6751f58ad51b25efcfb1105fdd46d..06d57f2544793321f4a57b4c4e7fceb8604c2b23 100644 (file)
@@ -930,11 +930,8 @@ abstract class AbstractTypeGenerator {
     private GeneratedTypeBuilder addRawAugmentGenTypeDefinition(final ModuleContext context,
             final String augmentPackageName, final Type targetTypeRef,
             final AugmentationSchemaNode augSchema) {
-        Map<String, GeneratedTypeBuilder> augmentBuilders = genTypeBuilders.get(augmentPackageName);
-        if (augmentBuilders == null) {
-            augmentBuilders = new HashMap<>();
-            genTypeBuilders.put(augmentPackageName, augmentBuilders);
-        }
+        Map<String, GeneratedTypeBuilder> augmentBuilders =
+            genTypeBuilders.computeIfAbsent(augmentPackageName, k -> new HashMap<>());
         final String augIdentifier = getAugmentIdentifier(augSchema.getUnknownSchemaNodes());
 
         String augTypeName;
index 022e7605eb387744e92632690ad072bcb0514b2f..11a0e726de8596e23fa7c0fad2c124438e6ba2a7 100644 (file)
@@ -1353,11 +1353,8 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         final Map<Integer, List<TypeDefinition<?>>> typeDefinitionsDepths = new TreeMap<>();
         for (TypeDefinition<?> unsortedTypeDefinition : unsortedTypeDefinitions) {
             final Integer depth = getTypeDefinitionDepth(unsortedTypeDefinition);
-            List<TypeDefinition<?>> typeDefinitionsConcreteDepth = typeDefinitionsDepths.get(depth);
-            if (typeDefinitionsConcreteDepth == null) {
-                typeDefinitionsConcreteDepth = new ArrayList<>();
-                typeDefinitionsDepths.put(depth, typeDefinitionsConcreteDepth);
-            }
+            List<TypeDefinition<?>> typeDefinitionsConcreteDepth =
+                typeDefinitionsDepths.computeIfAbsent(depth, k -> new ArrayList<>());
             typeDefinitionsConcreteDepth.add(unsortedTypeDefinition);
         }
 
@@ -1582,11 +1579,11 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         return sb.toString();
     }
 
-    private static final Comparator<Bit> BIT_NAME_COMPARATOR = (o1, o2) -> o1.getName().compareTo(o2.getName());
+    private static final Comparator<Bit> BIT_NAME_COMPARATOR = Comparator.comparing(Bit::getName);
 
     private static String bitsToDef(final BitsTypeDefinition type, final String className, final String defaultValue, final boolean isExt) {
         final List<Bit> bits = new ArrayList<>(type.getBits());
-        Collections.sort(bits, BIT_NAME_COMPARATOR);
+        bits.sort(BIT_NAME_COMPARATOR);
         final StringBuilder sb = new StringBuilder();
         if (!isExt) {
             sb.append("new ");
@@ -1661,7 +1658,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
                 }
                 if (module == null) {
                     final List<Module> modulesList = new ArrayList<>(modules);
-                    Collections.sort(modulesList, (o1, o2) -> Revision.compare(o1.getRevision(), o2.getRevision()));
+                    modulesList.sort((o1, o2) -> Revision.compare(o1.getRevision(), o2.getRevision()));
                     module = modulesList.get(0);
                 }
             } else {
index f7245e655629176331a2a5f7f45df86e7c974abf..3c4ab789ee89e347fb40a84a039f67173e1e0544 100644 (file)
@@ -92,10 +92,9 @@ public final class BindingGeneratorUtil {
     };
 
     private static final Comparator<TypeMemberBuilder<?>> SUID_MEMBER_COMPARATOR =
-        (o1, o2) -> o1.getName().compareTo(o2.getName());
+        Comparator.comparing(TypeMemberBuilder::getName);
 
-    private static final Comparator<Type> SUID_NAME_COMPARATOR =
-        (o1, o2) -> o1.getFullyQualifiedName().compareTo(o2.getFullyQualifiedName());
+    private static final Comparator<Type> SUID_NAME_COMPARATOR = Comparator.comparing(Type::getFullyQualifiedName);
 
     /**
      * Converts <code>parameterName</code> to valid JAVA parameter name.
@@ -395,23 +394,20 @@ public final class BindingGeneratorUtil {
     private static <T> Iterable<T> sortedCollection(final Comparator<? super T> comparator, final Collection<T> input) {
         if (input.size() > 1) {
             final List<T> ret = new ArrayList<>(input);
-            Collections.sort(ret, comparator);
+            ret.sort(comparator);
             return ret;
         } else {
             return input;
         }
     }
 
-    private static final ThreadLocal<MessageDigest> SHA1_MD = new ThreadLocal<MessageDigest>() {
-        @Override
-        protected MessageDigest initialValue() {
-            try {
-                return MessageDigest.getInstance("SHA");
-            } catch (final NoSuchAlgorithmException e) {
-                throw new IllegalStateException("Failed to get a SHA digest provider", e);
-            }
+    private static final ThreadLocal<MessageDigest> SHA1_MD = ThreadLocal.withInitial(() -> {
+        try {
+            return MessageDigest.getInstance("SHA");
+        } catch (final NoSuchAlgorithmException e) {
+            throw new IllegalStateException("Failed to get a SHA digest provider", e);
         }
-    };
+    });
 
     public static long computeDefaultSUID(final GeneratedTypeBuilderBase<?> to) {
         final ByteArrayOutputStream bout = new ByteArrayOutputStream();
index d1d6f396be9ae287a21810c1824eccfa547a3e4c..c0ca8d4263e36be239ad5250d2a20d9cc45f3150 100644 (file)
@@ -17,7 +17,6 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
-import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 import java.util.function.Supplier;
@@ -53,7 +52,7 @@ public abstract class BaseCompilationTest {
 
     protected static final void generateTestSources(final List<Type> types, final File sourcesOutputDir)
             throws IOException {
-        Collections.sort(types, (o1, o2) -> o2.getName().compareTo(o1.getName()));
+        types.sort((o1, o2) -> o2.getName().compareTo(o1.getName()));
 
         final GeneratorJavaFile generator = new GeneratorJavaFile(ImmutableSet.copyOf(types));
         final Table<?, String, Supplier<String>> generatedFiles = generator.generateFileContent(true);
index b67c0176815611b6194624806de45858ea922539..836f3a1342782b74337b3dac442b837389a49984 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.mdsal.binding.testutils;
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.Iterables;
+import java.util.Comparator;
 import java.util.Optional;
 import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
@@ -117,7 +118,7 @@ class XtendYangBeanGenerator extends XtendBeanGenerator {
             StringBuilder sb = new StringBuilder();
             optional.get().entrySet().stream()
                 // We sort the augmentations by Class type, because the Map has unpredictable order:
-                .sorted((e1, e2) -> e1.getKey().getName().compareTo(e2.getKey().getName()))
+                .sorted(Comparator.comparing(e2 -> e2.getKey().getName()))
                 .forEachOrdered(e -> {
                     sb.append("addAugmentation(");
                     sb.append(stringify(e.getKey()));
index 7beffb7930cca3c646e5d4b3aa4b8d2456a2f626..843b7dd5c15b37d3eb30fdabf41c921f4a12383a 100644 (file)
@@ -56,24 +56,20 @@ public final class ExpectedObjects {
                 TreeComplexUsesAugmentBuilder treeComplexUsesAugmentBuilder = new TreeComplexUsesAugmentBuilder();
                 final Procedure1<TreeComplexUsesAugmentBuilder> _function_2 = (TreeComplexUsesAugmentBuilder it2) -> {
                     ContainerWithUsesBuilder containerWithUsesBuilder = new ContainerWithUsesBuilder();
-                    final Procedure1<ContainerWithUsesBuilder> _function_3 = (ContainerWithUsesBuilder it3) -> {
-                        it3.setLeafFromGrouping("foo");
-                    };
-                    ContainerWithUses doubleGreaterThan = XtendBuilderExtensions
-                            .<ContainerWithUses, ContainerWithUsesBuilder>operator_doubleGreaterThan(
+                    final Procedure1<ContainerWithUsesBuilder> _function_3 =
+                        (ContainerWithUsesBuilder it3) -> it3.setLeafFromGrouping("foo");
+                    ContainerWithUses doubleGreaterThan = XtendBuilderExtensions.operator_doubleGreaterThan(
                                     containerWithUsesBuilder, _function_3);
                     it2.setContainerWithUses(doubleGreaterThan);
                 };
-                TreeComplexUsesAugment doubleGreaterThan = XtendBuilderExtensions
-                        .<TreeComplexUsesAugment, TreeComplexUsesAugmentBuilder>operator_doubleGreaterThan(
+                TreeComplexUsesAugment doubleGreaterThan = XtendBuilderExtensions.operator_doubleGreaterThan(
                                 treeComplexUsesAugmentBuilder, _function_2);
                 it1.addAugmentation(TreeComplexUsesAugment.class, doubleGreaterThan);
             };
-            TopLevelList doubleGreaterThan = XtendBuilderExtensions
-                    .<TopLevelList, TopLevelListBuilder>operator_doubleGreaterThan(topLevelListBuilder, _function_1);
-            it.setTopLevelList(Collections
-                    .<TopLevelList>unmodifiableList(CollectionLiterals.<TopLevelList>newArrayList(doubleGreaterThan)));
+            TopLevelList doubleGreaterThan =
+                XtendBuilderExtensions.operator_doubleGreaterThan(topLevelListBuilder, _function_1);
+            it.setTopLevelList(Collections.unmodifiableList(CollectionLiterals.newArrayList(doubleGreaterThan)));
         };
-        return XtendBuilderExtensions.<Top, TopBuilder>operator_doubleGreaterThan(topBuilder, _function);
+        return XtendBuilderExtensions.operator_doubleGreaterThan(topBuilder, _function);
     }
 }
index 88ff275b0d0ed3695a4e9a65f71cbe955c74df3b..5397e50ad4ca84981ec06afae2b27c7d02e3073a 100644 (file)
@@ -15,7 +15,6 @@ import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -91,7 +90,7 @@ public final class IdentifiableItemCodec implements Codec<NodeIdentifierWithPred
         final List<QName> sortedKeys;
         if (unsortedKeys.size() > 1) {
             final List<QName> tmp = new ArrayList<>(unsortedKeys);
-            Collections.sort(tmp, (q1, q2) -> q1.getLocalName().compareToIgnoreCase(q2.getLocalName()));
+            tmp.sort((q1, q2) -> q1.getLocalName().compareToIgnoreCase(q2.getLocalName()));
             sortedKeys = tmp;
         } else {
             sortedKeys = unsortedKeys;
index 0644cb0b20d4af550fd9d9068eec0ea4c8e259c4..5a0dbe05db0ee7a8db8d730e08e2305954b196a0 100644 (file)
@@ -77,14 +77,6 @@ public abstract class ValueTypeCodec implements Codec<Object, Object> {
         }
     };
 
-    private static final Callable<? extends SchemaUnawareCodec> EMPTY_LOADER = new Callable<SchemaUnawareCodec>() {
-
-        @Override
-        public SchemaUnawareCodec call() {
-            return EMPTY_CODEC;
-        }
-    };
-
     public static SchemaUnawareCodec getCodecFor(final Class<?> typeClz, final TypeDefinition<?> def) {
         if (BindingReflections.isBindingClass(typeClz)) {
             return getCachedSchemaUnawareCodec(typeClz, getCodecLoader(typeClz, def));
index e1e717e8e40e1b7cd80e99721cde2ca7a6b17828..ce1c8eabae52230d687e73f45ace3a5fee85f62f 100644 (file)
@@ -48,9 +48,8 @@ public abstract class YangSourceDefinition {
          * @return defining SchemaNodes, guaranteed to be non-empty
          */
         public List<? extends SchemaNode> getNodes() {
-            return nodes.stream().filter(node -> {
-                return node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null;
-            }).collect(Collectors.toList());
+            return nodes.stream().filter(node -> node instanceof EffectiveStatement
+                && ((EffectiveStatement<?, ?>) node).getDeclared() != null).collect(Collectors.toList());
         }
     }
 
@@ -108,9 +107,8 @@ public abstract class YangSourceDefinition {
 
         if (module instanceof ModuleEffectiveStatement) {
             final ModuleEffectiveStatement effective = (ModuleEffectiveStatement) module;
-            final boolean anyDeclared = nodes.stream().anyMatch(node -> {
-                return node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null;
-            });
+            final boolean anyDeclared = nodes.stream().anyMatch(node ->
+                node instanceof EffectiveStatement && ((EffectiveStatement<?, ?>) node).getDeclared() != null);
             if (anyDeclared) {
                 return Optional.of(new Multiple(effective, nodes));
             }
index d63d51bf2e691586f99399c7b107d147ecdb6ccc..f0d6355cc55e4c1b6761b9df134beb22991ad804 100644 (file)
@@ -15,7 +15,6 @@ import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
@@ -27,7 +26,6 @@ import org.opendaylight.mdsal.binding.javav2.generator.context.ModuleContext;
 import org.opendaylight.mdsal.binding.javav2.generator.spi.TypeProvider;
 import org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil;
 import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType;
-import org.opendaylight.mdsal.binding.javav2.model.api.Type;
 import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTypeBuilder;
 import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType;
 import org.opendaylight.mdsal.binding.javav2.util.BindingMapping;
@@ -40,7 +38,6 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -135,7 +132,7 @@ final class AugmentToGenType {
 
         List<Map.Entry<SchemaPath, List<AugmentationSchemaNode>>> sortedAugmentationsGrouped =
                 new ArrayList<>(augmentationsGrouped.entrySet());
-        Collections.sort(sortedAugmentationsGrouped, AUGMENTS_COMP);
+        sortedAugmentationsGrouped.sort(AUGMENTS_COMP);
 
         //process child nodes of grouped augment entries
         for (Map.Entry<SchemaPath, List<AugmentationSchemaNode>> schemaPathAugmentListEntry : sortedAugmentationsGrouped) {
index d48a12c15989b9bf4d18a42663273c8cc152ee11..8be9e735aa4d0aa10f7fa5cf3602a3966e074032 100644 (file)
@@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import org.opendaylight.mdsal.binding.javav2.generator.context.ModuleContext;
 import org.opendaylight.mdsal.binding.javav2.generator.spi.TypeProvider;
@@ -98,7 +99,7 @@ final class ModuleToGenType {
         final List<TypeDefinition<?>> typeDefinitions = it.allTypedefs();
         Preconditions.checkState(typeDefinitions != null, "Type Definitions for module «module.name» cannot be NULL.");
 
-        typeDefinitions.stream().filter(typedef -> typedef != null).forEach(typedef -> {
+        typeDefinitions.stream().filter(Objects::nonNull).forEach(typedef -> {
             final Type type = ((TypeProviderImpl) typeProvider).generatedTypeForExtendedDefinitionType(typedef,
                     typedef);
             if (type != null) {
index 8b46876dd58ecd5d9c495c45c3e381a4af0d89b6..04f48d032a536397e6c618d10a4545aeb832ccbd 100755 (executable)
@@ -36,6 +36,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -207,7 +208,7 @@ public final class TypeProviderImpl implements TypeProvider {
             genTypeDefsContextMap.put(module.getName(), dateTypeMap);
         }
 
-        modulesSortedByDependency.stream().filter(module -> module != null).forEach(module -> {
+        modulesSortedByDependency.stream().filter(Objects::nonNull).forEach(module -> {
             ModuleContext context = new ModuleContext();
             final String basePackageName = packageNameWithNamespacePrefix(getRootPackageName(module),
                     BindingNamespaceType.Typedef);
index 81b01c5d2e5629ced40381b9491f1e6865681134..1c3a6d59604a43848ba1b91dc75b359a5343d320 100644 (file)
@@ -421,16 +421,13 @@ public final class BindingGeneratorUtil {
         }
     }
 
-    private static final ThreadLocal<MessageDigest> SHA1_MD = new ThreadLocal<MessageDigest>() {
-        @Override
-        protected MessageDigest initialValue() {
-            try {
-                return MessageDigest.getInstance("SHA");
-            } catch (final NoSuchAlgorithmException e) {
-                throw new IllegalStateException("Failed to get a SHA digest provider", e);
-            }
+    private static final ThreadLocal<MessageDigest> SHA1_MD = ThreadLocal.withInitial(() -> {
+        try {
+            return MessageDigest.getInstance("SHA");
+        } catch (final NoSuchAlgorithmException e) {
+            throw new IllegalStateException("Failed to get a SHA digest provider", e);
         }
-    };
+    });
 
     private static String generateNormalizedPackageName(final String base, final Iterable<QName> path, final int
             size, final BindingNamespaceType namespaceType) {
index fbdfe4835145de36287e504bffd1574f9875feda..5450d6e79ffecf1ffdb97d15f64012933cf59e15 100755 (executable)
@@ -13,6 +13,7 @@ import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import org.opendaylight.mdsal.binding.javav2.generator.util.AbstractBaseType;
@@ -101,9 +102,9 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
     private static List<GeneratedType> toUnmodifiableEnclosedTypes(final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,
                                                                    final List<GeneratedTOBuilder> enclosedGenTOBuilders) {
         final ArrayList<GeneratedType> enclosedTypesList = new ArrayList<>(enclosedGenTypeBuilders.size() + enclosedGenTOBuilders.size());
-        enclosedTypesList.addAll(enclosedGenTypeBuilders.stream().filter(builder -> builder != null).map(GeneratedTypeBuilder::toInstance).collect(Collectors.toList()));
+        enclosedTypesList.addAll(enclosedGenTypeBuilders.stream().filter(Objects::nonNull).map(GeneratedTypeBuilder::toInstance).collect(Collectors.toList()));
 
-        enclosedTypesList.addAll(enclosedGenTOBuilders.stream().filter(builder -> builder != null).map(GeneratedTOBuilder::toInstance).collect(Collectors.toList()));
+        enclosedTypesList.addAll(enclosedGenTOBuilders.stream().filter(Objects::nonNull).map(GeneratedTOBuilder::toInstance).collect(Collectors.toList()));
 
         return makeUnmodifiable(enclosedTypesList);
     }
index ea4921941f20629d25d1761620ff9b03c3ced6c1..3d02b03dbb889f07fbabb139b0c6b52c00d4f27b 100755 (executable)
@@ -35,7 +35,6 @@ import org.opendaylight.yangtools.util.LazyCollections;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair;
 
 @Beta
 public class EnumerationBuilderImpl extends AbstractBaseType implements EnumBuilder {
@@ -109,12 +108,9 @@ public class EnumerationBuilderImpl extends AbstractBaseType implements EnumBuil
 
     @Override
     public void updateEnumPairsFromEnumTypeDef(final EnumTypeDefinition enumTypeDef) {
-        final List<EnumPair> enums = enumTypeDef.getValues();
-        if (enums != null) {
-            enums.stream().filter(enumPair -> enumPair != null).forEach(enumPair -> this.addValue(enumPair.getName(),
-                    enumPair.getValue(), enumPair.getDescription().orElse(null), enumPair.getReference().orElse(null),
-                    enumPair.getStatus()));
-        }
+        enumTypeDef.getValues().stream().filter(Objects::nonNull).forEach(enumPair -> this.addValue(enumPair.getName(),
+                enumPair.getValue(), enumPair.getDescription().orElse(null), enumPair.getReference().orElse(null),
+                enumPair.getStatus()));
     }
 
     private static final class EnumPairImpl implements Enumeration.Pair {
index e4900b8352ae42f31ebb14908f70d18dcf824536..8137627cc458516b2eecbc023871f14924ed2491 100644 (file)
@@ -20,12 +20,9 @@ import java.beans.ConstructorProperties;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.AbstractRangeGenerator;
 import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.LengthGenerator;
@@ -75,7 +72,7 @@ public class ClassRenderer extends BaseRenderer {
             final String name1 = p2.getName();
             return name.compareTo(name1);
         };
-        Collections.sort(sorted, function);
+        sorted.sort(function);
         allProperties = ImmutableList.copyOf(sorted);
 
         if (restrictions != null && restrictions.getRangeConstraint().isPresent()) {
index b251de1021a05986c5cb7f8ce0d11c5fd30cdab9..4a215b770a275d9f1cbf39d1e965ffa6a373a1b2 100644 (file)
@@ -37,12 +37,8 @@ public class TransactionCommitDeadlockException extends TransactionCommitFailedE
     private static final RpcError DEADLOCK_RPCERROR =
             RpcResultBuilder.newError(ErrorType.APPLICATION, "lock-denied", DEADLOCK_MESSAGE);
 
-    public static final Supplier<Exception> DEADLOCK_EXCEPTION_SUPPLIER = new Supplier<Exception>() {
-        @Override
-        public Exception get() {
-            return new TransactionCommitDeadlockException(DEADLOCK_MESSAGE, DEADLOCK_RPCERROR);
-        }
-    };
+    public static final Supplier<Exception> DEADLOCK_EXCEPTION_SUPPLIER =
+        () -> new TransactionCommitDeadlockException(DEADLOCK_MESSAGE, DEADLOCK_RPCERROR);
 
     public TransactionCommitDeadlockException(final String message, final RpcError... errors) {
         super(message, errors);
index 9d6f58e5abbbee26e2e396027cfe3793d7f241b7..04a90d7d61b6e2de5d4110247f2f249d5a107bf2 100644 (file)
@@ -14,6 +14,7 @@ import com.google.common.collect.ImmutableMap.Builder;
 import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.FluentFuture;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -79,7 +80,7 @@ abstract class AbstractDOMRpcRoutingTableEntry {
 
                 // New implementation is at the end, this will move it to be the last among implementations
                 // with equal cost -- relying on sort() being stable.
-                i.sort((i1, i2) -> Long.compare(i1.invocationCost(), i2.invocationCost()));
+                i.sort(Comparator.comparingLong(DOMRpcImplementation::invocationCost));
                 vb.put(ve.getKey(), i);
             } else {
                 vb.put(ve);
index 145059ca69f5ee5e1a23414cef33f26163c99be9..b27dd95a6b5ee418dbc0ea524ed8128f643dc848 100644 (file)
@@ -235,7 +235,7 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
                 b.add(ret);
                 listeners = b.build();
 
-                listenerNotifier.execute(() -> ret.initialTable());
+                listenerNotifier.execute(ret::initialTable);
                 return ret;
             }
         }
index 633d395398e99ab38cafcf64a71e0a14fad9dfb9..b9c7ad5657121ca41f5c20d29bdfe1b8dba9d715 100644 (file)
@@ -159,18 +159,13 @@ public class DOMBrokerTest {
     @SuppressWarnings("checkstyle:IllegalCatch")
     AtomicReference<Throwable> submitTxAsync(final DOMDataTreeWriteTransaction writeTx) {
         final AtomicReference<Throwable> caughtEx = new AtomicReference<>();
-        new Thread() {
-            @Override
-            public void run() {
-
-                try {
-                    writeTx.commit();
-                } catch (final Throwable e) {
-                    caughtEx.set(e);
-                }
+        new Thread(() -> {
+            try {
+                writeTx.commit();
+            } catch (final Throwable e) {
+                caughtEx.set(e);
             }
-
-        }.start();
+        }).start();
 
         return caughtEx;
     }
index 2d9bf97364cb73ba280e2af39ac95d97289e6c04..9b86574994e9ef7478b383f044ed94a4939ce41d 100644 (file)
@@ -39,7 +39,7 @@ public abstract class AbstractDOMStoreTreeChangePublisher
         implements DOMStoreTreeChangePublisher {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractDOMStoreTreeChangePublisher.class);
 
-    private static final Supplier<List<DataTreeCandidate>> LIST_SUPPLIER = () -> new ArrayList<>();
+    private static final Supplier<List<DataTreeCandidate>> LIST_SUPPLIER = ArrayList::new;
 
     /**
      * Callback for subclass to notify a specified registration of a list of candidates. This method is guaranteed