- 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);