Turn ShardContainer into a record 01/109501/4
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 31 Dec 2023 00:23:35 +0000 (01:23 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 31 Dec 2023 06:31:55 +0000 (07:31 +0100)
We have Java 17 now, use a record instead of a final class.

Change-Id: I340bf3f288ef8264dafc7d77403c5482f307a671
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/RootScatterGather.java

index c0d4de44d34dadf90f4f72132d59c1a4db899d9f..ee831d64f33052e11a023672bd56f64ab4e84069 100644 (file)
@@ -24,7 +24,6 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
@@ -38,33 +37,11 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedExcepti
  * Utility methods for dealing with datastore root {@link ContainerNode} with respect to module shards.
  */
 public final class RootScatterGather {
-    // FIXME: Record when we have JDK17+
     @NonNullByDefault
-    public static final class ShardContainer<T> {
-        private final ContainerNode container;
-        private final T shard;
-
-        ShardContainer(final T shard, final ContainerNode container) {
-            this.shard = requireNonNull(shard);
-            this.container = requireNonNull(container);
-        }
-
-        public T shard() {
-            return shard;
-        }
-
-        public ContainerNode container() {
-            return container;
-        }
-
-        @Override
-        public int hashCode() {
-            return shard.hashCode();
-        }
-
-        @Override
-        public boolean equals(final @Nullable Object obj) {
-            return obj == this || obj instanceof ShardContainer && shard.equals(((ShardContainer<?>) obj).shard);
+    public record ShardContainer<T>(T shard, ContainerNode container) {
+        public ShardContainer {
+            requireNonNull(shard);
+            requireNonNull(container);
         }
 
         @Override