Mass-migrate fields to Immutable collections 08/78808/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 14 Dec 2018 20:09:26 +0000 (21:09 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 14 Dec 2018 20:10:37 +0000 (21:10 +0100)
This follows errorprone/Google recommendation of keeping fields
Immutable{List,Map,Set}. It has the tiny advantage of resulting
in invokevirtual vs. invokeinterface.

Change-Id: I53d55c1909d93021370d6f411284a89cab62b4f8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMNotificationListenerAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcProviderServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/NotificationListenerInvoker.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractBindingNormalizedNodeCacheHolder.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/CachingNormalizedNodeCodec.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/api/BindingRuntimeTypes.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AbstractJavaGeneratedType.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AbstractRangeGenerator.java

index b04c1990df3c40ed7d53dcfeef141ae6b32c5757..15f89f4c6d8e1f158ccf302e888ca10fd6947ce9 100644 (file)
@@ -28,7 +28,7 @@ class BindingDOMNotificationListenerAdapter implements DOMNotificationListener {
 
     private final BindingNormalizedNodeSerializer codec;
     private final NotificationListener delegate;
-    private final Map<SchemaPath,NotificationListenerInvoker> invokers;
+    private final ImmutableMap<SchemaPath, NotificationListenerInvoker> invokers;
 
     BindingDOMNotificationListenerAdapter(final BindingNormalizedNodeSerializer codec,
             final NotificationListener delegate) {
@@ -59,7 +59,7 @@ class BindingDOMNotificationListenerAdapter implements DOMNotificationListener {
         return invokers.keySet();
     }
 
-    public static Map<SchemaPath, NotificationListenerInvoker> createInvokerMapFor(
+    private static ImmutableMap<SchemaPath, NotificationListenerInvoker> createInvokerMapFor(
             final Class<? extends NotificationListener> implClz) {
         final Map<SchemaPath, NotificationListenerInvoker> builder = new HashMap<>();
         for (final TypeToken<?> ifaceToken : TypeToken.of(implClz).getTypes().interfaces()) {
index 2cea7a06ad7488fbca1e6e69e354d4f3da11a0d0..52639f6bb81255bf7f7dc104105e11d3a7213626 100644 (file)
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 public class BindingDOMRpcProviderServiceAdapter extends AbstractBindingAdapter<DOMRpcProviderService>
         implements RpcProviderService {
-    private static final Set<YangInstanceIdentifier> GLOBAL = ImmutableSet.of(YangInstanceIdentifier.builder().build());
+    private static final ImmutableSet<YangInstanceIdentifier> GLOBAL = ImmutableSet.of(YangInstanceIdentifier.EMPTY);
 
     public BindingDOMRpcProviderServiceAdapter(final DOMRpcProviderService domRpcRegistry,
             final BindingToNormalizedNodeCodec codec) {
index 7d7db49392eaa2d8e360dec9c4dd37c4958f71d7..0052990d1c2f725a23d46949fcbca23f9b8765a0 100644 (file)
@@ -21,7 +21,6 @@ import java.lang.invoke.MethodHandles;
 import java.lang.invoke.MethodHandles.Lookup;
 import java.lang.invoke.MethodType;
 import java.lang.reflect.Method;
-import java.util.Map;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
@@ -48,7 +47,8 @@ public final class NotificationListenerInvoker {
                     return new NotificationListenerInvoker(createInvokerMap(key));
                 }
 
-                private Map<QName, MethodHandle> createInvokerMap(final Class<? extends NotificationListener> key) {
+                private ImmutableMap<QName, MethodHandle> createInvokerMap(
+                        final Class<? extends NotificationListener> key) {
                     final Builder<QName, MethodHandle> ret = ImmutableMap.builder();
                     for (final Method method : key.getMethods()) {
                         if (BindingReflections.isNotificationCallback(method)) {
@@ -70,9 +70,9 @@ public final class NotificationListenerInvoker {
                 }
             });
 
-    private final Map<QName, MethodHandle> methodInvokers;
+    private final ImmutableMap<QName, MethodHandle> methodInvokers;
 
-    NotificationListenerInvoker(final Map<QName, MethodHandle> map) {
+    NotificationListenerInvoker(final ImmutableMap<QName, MethodHandle> map) {
         this.methodInvokers = map;
     }
 
index fa5dc674aa32e3eea6ce4d7d4d4c08e74cd956dd..db7cbc693e5f8827f6da58c2a8fe6275e4f27159 100644 (file)
@@ -7,11 +7,12 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
-import java.util.Set;
+import com.google.common.collect.ImmutableSet;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
 /**
@@ -20,7 +21,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
  */
 abstract class AbstractBindingNormalizedNodeCacheHolder {
 
-    private final Set<Class<? extends DataObject>> cachedValues;
+    private final ImmutableSet<Class<? extends DataObject>> cachedValues;
     private final LoadingCache<DataContainerCodecContext<?, ?>, BindingNormalizedNodeCache> caches = CacheBuilder
             .newBuilder().build(new CacheLoader<DataContainerCodecContext<?, ?>, BindingNormalizedNodeCache>() {
                 @Override
@@ -29,8 +30,8 @@ abstract class AbstractBindingNormalizedNodeCacheHolder {
                 }
             });
 
-    protected AbstractBindingNormalizedNodeCacheHolder(final Set<Class<? extends DataObject>> cacheSpec) {
-        cachedValues = Preconditions.checkNotNull(cacheSpec);
+    AbstractBindingNormalizedNodeCacheHolder(final ImmutableSet<Class<? extends DataObject>> cacheSpec) {
+        cachedValues = requireNonNull(cacheSpec);
     }
 
     BindingNormalizedNodeCache getCachingSerializer(final DataContainerCodecContext<?, ?> childCtx) {
index 95ab2b331a494cee753ce0cd5b6197873e00a413..893f2523a445ed133b19093ff4f84f1b7616524e 100644 (file)
@@ -7,7 +7,9 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import java.lang.invoke.MethodHandle;
@@ -33,15 +35,15 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec
     private static final MethodType CONSTRUCTOR_INVOKE_TYPE = MethodType.methodType(Object.class, Boolean[].class);
 
     // Ordered by position
-    private final Map<String, Method> getters;
+    private final ImmutableMap<String, Method> getters;
     // Ordered by lexical name
-    private final Set<String> ctorArgs;
+    private final ImmutableSet<String> ctorArgs;
     private final MethodHandle ctor;
 
     private BitsCodec(final Class<?> typeClass, final MethodHandle ctor, final Set<String> ctorArgs,
             final Map<String, Method> getters) {
         super(typeClass);
-        this.ctor = Preconditions.checkNotNull(ctor);
+        this.ctor = requireNonNull(ctor);
         this.ctorArgs = ImmutableSet.copyOf(ctorArgs);
         this.getters = ImmutableMap.copyOf(getters);
     }
@@ -73,7 +75,7 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec
     @Override
     @SuppressWarnings("checkstyle:illegalCatch")
     public Object deserialize(final Object input) {
-        Preconditions.checkArgument(input instanceof Set);
+        checkArgument(input instanceof Set);
         @SuppressWarnings("unchecked")
         final Set<String> casted = (Set<String>) input;
 
index 6da3a6c8b2974ad8c7ba15b467f52db4fa6cd83f..c8504d778fc5c2c4b16f65822fe61cfc3262eeeb 100644 (file)
@@ -7,8 +7,9 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
-import com.google.common.base.Preconditions;
-import java.util.Set;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.collect.ImmutableSet;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeCachingCodec;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -19,9 +20,9 @@ class CachingNormalizedNodeCodec<D extends DataObject> extends AbstractBindingNo
     private final DataContainerCodecContext<D, ?> context;
 
     CachingNormalizedNodeCodec(final DataContainerCodecContext<D, ?> subtreeRoot,
-            final Set<Class<? extends DataObject>> cacheSpec) {
+            final ImmutableSet<Class<? extends DataObject>> cacheSpec) {
         super(cacheSpec);
-        this.context = Preconditions.checkNotNull(subtreeRoot);
+        this.context = requireNonNull(subtreeRoot);
     }
 
     @Override
index db04b51f7cc4d2a8ab68a2d694c1bdbbdf1243b0..92cc5b51a4631e58d939767372e29dcb4b85ef0c 100644 (file)
@@ -130,7 +130,7 @@ abstract class DataContainerCodecContext<D extends DataObject, T extends WithSta
         if (cacheSpecifier.isEmpty()) {
             return new NonCachingCodec<>(this);
         }
-        return new CachingNormalizedNodeCodec<>(this,ImmutableSet.copyOf(cacheSpecifier));
+        return new CachingNormalizedNodeCodec<>(this, ImmutableSet.copyOf(cacheSpecifier));
     }
 
     BindingStreamEventWriter createWriter(final NormalizedNodeStreamWriter domWriter) {
index 94594c2f7bf8a9f77a800a8cda9eb13dd89feeea..e5ed043394d9c82d0af83197dc44bc27e1922302 100644 (file)
@@ -31,10 +31,10 @@ import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
 @ThreadSafe
 public final class BindingRuntimeTypes implements Immutable {
 
-    private final Map<Type, AugmentationSchemaNode> typeToAugmentation;
-    private final BiMap<Type, WithStatus> typeToSchema;
-    private final Multimap<Type, Type> choiceToCases;
-    private final Map<QName, Type> identities;
+    private final ImmutableMap<Type, AugmentationSchemaNode> typeToAugmentation;
+    private final ImmutableBiMap<Type, WithStatus> typeToSchema;
+    private final ImmutableMultimap<Type, Type> choiceToCases;
+    private final ImmutableMap<QName, Type> identities;
 
     public BindingRuntimeTypes(final Map<Type, AugmentationSchemaNode> typeToAugmentation,
             final BiMap<Type, WithStatus> typeToDefiningSchema, final Multimap<Type, Type> choiceToCases,
index 75461fa843cf7e8a0933fa1864e40f90b1bde42e..95741f79a595eb6402c79b354ebea5c1fba31f4c 100644 (file)
@@ -38,8 +38,8 @@ import org.opendaylight.mdsal.binding.model.api.WildcardType;
 @NotThreadSafe
 abstract class AbstractJavaGeneratedType {
     private final Map<JavaTypeName, @Nullable String> nameCache = new HashMap<>();
-    private final Map<String, NestedJavaGeneratedType> enclosedTypes;
-    private final Set<String> conflictingNames;
+    private final ImmutableMap<String, NestedJavaGeneratedType> enclosedTypes;
+    private final ImmutableSet<String> conflictingNames;
 
     private final JavaTypeName name;
 
index 8befec7b80a0a27448c2e3e4749467caef616659..fee91319c48589294716d069afadddee892d8320 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
-import java.util.Map;
 import java.util.function.Function;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.model.api.ConcreteType;
@@ -22,7 +21,7 @@ import org.slf4j.LoggerFactory;
 
 abstract class AbstractRangeGenerator<T extends Number & Comparable<T>> {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractRangeGenerator.class);
-    private static final Map<String, AbstractRangeGenerator<?>> GENERATORS;
+    private static final ImmutableMap<String, AbstractRangeGenerator<?>> GENERATORS;
 
     private static void addGenerator(final Builder<String, AbstractRangeGenerator<?>> builder,
             final AbstractRangeGenerator<?> generator) {