-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
-import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+
+abstract class KeyedListNodeCodecContext<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+ extends ListNodeCodecContext<D> {
+ private static final class Ordered<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+ extends KeyedListNodeCodecContext<I, D> {
+ Ordered(final DataContainerCodecPrototype<ListRuntimeType> prototype, final Method keyMethod,
+ final IdentifiableItemCodec codec) {
+ super(prototype, keyMethod, codec);
+ }
+ }
+
+ static final class Unordered<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+ extends KeyedListNodeCodecContext<I, D> {
+ Unordered(final DataContainerCodecPrototype<ListRuntimeType> prototype, final Method keyMethod,
+ final IdentifiableItemCodec codec) {
+ super(prototype, keyMethod, codec);
+ }
+
+ @Override
+ Map<I, D> fromMap(final MapNode map, final int size) {
+ return LazyBindingMap.create(this, map, size);
+ }
+ }