import com.google.common.collect.Iterables;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.ObjectStreamException;
+import java.io.Serial;
import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
*/
public class InstanceIdentifier<T extends DataObject>
implements HierarchicalIdentifier<InstanceIdentifier<? extends DataObject>> {
+ @Serial
private static final long serialVersionUID = 3L;
/*
}
private abstract static class AbstractPathArgument<T extends DataObject> implements PathArgument, Serializable {
+ @Serial
private static final long serialVersionUID = 1L;
private final @NonNull Class<T> type;
* @param <T> Item type
*/
public static class Item<T extends DataObject> extends AbstractPathArgument<T> {
+ @Serial
private static final long serialVersionUID = 1L;
Item(final Class<T> type) {
*/
public static class IdentifiableItem<I extends Identifiable<T> & DataObject, T extends Identifier<I>>
extends AbstractPathArgument<I> {
+ @Serial
private static final long serialVersionUID = 1L;
private final @NonNull T key;
private static final class CaseItem<C extends ChoiceIn<?> & DataObject, T extends ChildOf<? super C>>
extends Item<T> {
+ @Serial
private static final long serialVersionUID = 1L;
private final Class<C> caseType;
private static final class CaseIdentifiableItem<C extends ChoiceIn<?> & DataObject,
T extends ChildOf<? super C> & Identifiable<K>, K extends Identifier<T>> extends IdentifiableItem<T, K> {
+ @Serial
private static final long serialVersionUID = 1L;
private final Class<C> caseType;
@NonNull InstanceIdentifier<T> build();
}
+ @Serial
private Object writeReplace() throws ObjectStreamException {
return new InstanceIdentifierV3<>(this);
}