import static java.util.Objects.requireNonNull;
import com.google.common.base.MoreObjects;
+import java.io.Serial;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.Identifier;
* An abstract {@link Identifier} backed by an immutable object. Subclasses have no control over {@link #hashCode()}
* and {@link #equals(Object)}, hence they should not add any fields.
*
- * @author Robert Varga
- *
* @param <T> Object type
*/
public abstract class AbstractIdentifier<T> implements Identifier {
+ @Serial
private static final long serialVersionUID = 1L;
private final @NonNull T value;
*/
package org.opendaylight.yangtools.util;
-import com.google.common.annotations.Beta;
+import java.io.Serial;
import java.util.UUID;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.Identifier;
/**
* Utility {@link Identifier} backed by a {@link UUID}.
- *
- * @author Robert Varga
*/
-@Beta
public abstract class AbstractStringIdentifier<T extends AbstractStringIdentifier<T>>
extends AbstractIdentifier<String> implements Comparable<T> {
+ @Serial
private static final long serialVersionUID = 1L;
protected AbstractStringIdentifier(final @NonNull String string) {
*/
package org.opendaylight.yangtools.util;
-import com.google.common.annotations.Beta;
+import java.io.Serial;
import java.util.UUID;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.Identifier;
/**
* Utility {@link Identifier} backed by a {@link UUID}.
- *
- * @author Robert Varga
*/
-@Beta
public abstract class AbstractUUIDIdentifier<T extends AbstractUUIDIdentifier<T>> extends AbstractIdentifier<UUID>
implements Comparable<T> {
+ @Serial
private static final long serialVersionUID = 1L;
protected AbstractUUIDIdentifier(final @NonNull UUID uuid) {
import static java.util.Objects.requireNonNull;
import com.google.common.collect.UnmodifiableIterator;
+import java.io.Serial;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
* @param <E> the type of elements in this list
*/
final class ConstantArrayCollection<E> implements Collection<E>, Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
+
private final E @NonNull[] array;
ConstantArrayCollection(final E @NonNull[] array) {
@Override
public boolean equals(final Object obj) {
- return obj == this || obj instanceof ConstantArrayCollection
- && Arrays.equals(array, ((ConstantArrayCollection<?>) obj).array);
+ return obj == this || obj instanceof ConstantArrayCollection<?> other && Arrays.equals(array, other.array);
}
@Override
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.Serial;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.util.AbstractMap.SimpleImmutableEntry;
@Beta
public abstract class ImmutableOffsetMap<K, V> implements UnmodifiableMapPhase<K, V>, Serializable {
static final class Ordered<K, V> extends ImmutableOffsetMap<K, V> {
+ @Serial
private static final long serialVersionUID = 1L;
Ordered(final ImmutableMap<K, Integer> offsets, final V[] objects) {
}
static final class Unordered<K, V> extends ImmutableOffsetMap<K, V> {
+ @Serial
private static final long serialVersionUID = 1L;
Unordered(final ImmutableMap<K, Integer> offsets, final V[] objects) {
}
}
+ @Serial
private static final long serialVersionUID = 1L;
private final transient @NonNull ImmutableMap<K, Integer> offsets;
}
}
+ @Serial
private void writeObject(final ObjectOutputStream out) throws IOException {
out.writeInt(offsets.size());
for (Entry<K, V> e : entrySet()) {
}
}
+ // FIXME: this is ugly, use an Externalizable proxy
private static final Field OFFSETS_FIELD = fieldFor("offsets");
private static final Field ARRAY_FIELD = fieldFor("objects");
}
}
+ @Serial
@SuppressWarnings("unchecked")
private void readObject(final @NonNull ObjectInputStream in) throws IOException, ClassNotFoundException {
final int s = in.readInt();
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
+import java.io.Serial;
import java.io.Serializable;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Iterator;
@Beta
public abstract class SharedSingletonMap<K, V> implements Serializable, UnmodifiableMapPhase<K, V> {
static final class Ordered<K, V> extends SharedSingletonMap<K, V> {
+ @Serial
private static final long serialVersionUID = 1L;
Ordered(final K key, final V value) {
}
static final class Unordered<K, V> extends SharedSingletonMap<K, V> {
+ @Serial
private static final long serialVersionUID = 1L;
Unordered(final K key, final V value) {
}
}
+ @Serial
private static final long serialVersionUID = 1L;
private static final LoadingCache<Object, SingletonSet<Object>> CACHE = CacheBuilder.newBuilder().weakValues()
.build(new CacheLoader<Object, SingletonSet<Object>>() {
import com.google.common.annotations.Beta;
import com.google.common.collect.Iterators;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.Serial;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
*/
@Beta
public abstract class SingletonSet<E> implements Set<E>, Immutable, Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
private static final SingletonSet<?> NULL_SINGLETON = new SingletonSet<>() {
+ @Serial
private static final long serialVersionUID = 1L;
@Override
return "[null]";
}
+ @Serial
private Object readResolve() {
return NULL_SINGLETON;
}
@NonNullByDefault
private static final class RegularSingletonSet<E> extends SingletonSet<E> {
+ @Serial
private static final long serialVersionUID = 1L;
private final E element;
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.Serial;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
* threads are busy.
*/
private static class ExecutorQueue extends SynchronousQueue<Runnable> {
-
+ @Serial
private static final long serialVersionUID = 1L;
private static final long POLL_WAIT_TIME_IN_MS = 300;
package org.opendaylight.yangtools.util.concurrent;
import com.google.common.annotations.Beta;
+import java.io.Serial;
import java.util.Collection;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
* @param <E> the element t.ype
*/
public class TrackingLinkedBlockingQueue<E> extends LinkedBlockingQueue<E> {
+ @Serial
private static final long serialVersionUID = 1L;
@SuppressWarnings("rawtypes")
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import java.io.Serial;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
static final InitialInvoker EXECUTE = Executor::execute;
public static class TestDeadlockException extends Exception {
+ @Serial
private static final long serialVersionUID = 1L;
-
}
private static final Supplier<Exception> DEADLOCK_EXECUTOR_SUPPLIER = TestDeadlockException::new;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
+import java.io.Serial;
import java.util.concurrent.ExecutionException;
import org.junit.Test;
public class ReflectiveExceptionMapperTest {
static final class NoArgumentCtorException extends Exception {
+ @Serial
private static final long serialVersionUID = 1L;
NoArgumentCtorException() {
}
static final class PrivateCtorException extends Exception {
+ @Serial
private static final long serialVersionUID = 1L;
private PrivateCtorException(final String message, final Throwable cause) {
}
static final class FailingCtorException extends Exception {
+ @Serial
private static final long serialVersionUID = 1L;
FailingCtorException(final String message, final Throwable cause) {
}
public static final class GoodException extends Exception {
+ @Serial
private static final long serialVersionUID = 1L;
public GoodException(final String message, final Throwable cause) {