import static java.util.Objects.requireNonNull;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.runtime.api.RuntimeTypeContainer;
+import org.opendaylight.mdsal.binding.runtime.api.CompositeRuntimeType;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
-import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-abstract sealed class CommonDataObjectCodecPrototype<T extends RuntimeTypeContainer> implements CodecContextSupplier
+abstract sealed class CommonDataObjectCodecPrototype<T extends CompositeRuntimeType> implements CodecContextSupplier
permits AugmentationCodecPrototype, DataObjectCodecPrototype {
private static final VarHandle INSTANCE;
}
private final @NonNull T type;
- private final @NonNull QNameModule namespace;
private final @NonNull CodecContextFactory factory;
private final @NonNull Item<?> bindingArg;
- // multiple paths represent augmentation wrapper
- // FIXME: this means it is either this or 'childArgs'
-
// Accessed via INSTANCE
@SuppressWarnings("unused")
+ @SuppressFBWarnings(value = "UUF_UNUSED_FIELD", justification = "https://github.com/spotbugs/spotbugs/issues/2749")
private volatile CommonDataObjectCodecContext<?, T> instance;
- CommonDataObjectCodecPrototype(final Item<?> bindingArg, final QNameModule namespace, final T type,
- final CodecContextFactory factory) {
+ CommonDataObjectCodecPrototype(final Item<?> bindingArg, final T type, final CodecContextFactory factory) {
this.bindingArg = requireNonNull(bindingArg);
- this.namespace = requireNonNull(namespace);
this.type = requireNonNull(type);
this.factory = requireNonNull(factory);
}
return type;
}
- final @NonNull QNameModule getNamespace() {
- return namespace;
- }
-
final @NonNull CodecContextFactory getFactory() {
return factory;
}