import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Object[] objects;
private LazyBindingList(final ListNodeCodecContext<E> codec,
- final Collection<? extends NormalizedNodeContainer<?, ?, ?>> entries) {
+ final Collection<? extends NormalizedNodeContainer<?>> entries) {
this.codec = requireNonNull(codec);
objects = entries.toArray();
}
static <E extends DataObject> @NonNull List<E> create(final ListNodeCodecContext<E> codec, final int size,
- final Collection<? extends NormalizedNodeContainer<?, ?, ?>> entries) {
+ final Collection<? extends DistinctNodeContainer<?, ?>> entries) {
if (size == 1) {
// Do not bother with lazy instantiation in case of a singleton
return List.of(codec.createBindingProxy(entries.iterator().next()));
}
private static <E extends DataObject> @NonNull List<E> eagerList(final ListNodeCodecContext<E> codec,
- final int size, final Collection<? extends NormalizedNodeContainer<?, ?, ?>> entries) {
+ final int size, final Collection<? extends DistinctNodeContainer<?, ?>> entries) {
@SuppressWarnings("unchecked")
final E[] objs = (E[]) new DataObject[size];
int offset = 0;
- for (NormalizedNodeContainer<?, ?, ?> node : entries) {
+ for (DistinctNodeContainer<?, ?> node : entries) {
objs[offset++] = codec.createBindingProxy(node);
}
verify(offset == objs.length);
//
// We could do a Class.isInstance() check here, but since the implementation is not marked as final (yet) we
// would be at the mercy of CHA being able to prove this invariant.
- return obj.getClass() == codec.generatedClass() ? (E) obj : load(index, (NormalizedNodeContainer<?, ?, ?>) obj);
+ return obj.getClass() == codec.generatedClass() ? (E) obj : load(index, (DistinctNodeContainer<?, ?>) obj);
}
- private @NonNull E load(final int index, final NormalizedNodeContainer<?, ?, ?> node) {
+ private @NonNull E load(final int index, final DistinctNodeContainer<?, ?> node) {
final E ret = codec.createBindingProxy(node);
final Object witness;
return (witness = OBJ_AA.compareAndExchangeRelease(objects, index, node, ret)) == node ? ret : (E) witness;