BUG 1975 - yang unkeyed list is transformed to map node
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / transform / base / parser / MapNodeBaseParser.java
index 6aeb1edbd6dd29908f146163b24f2384f0dbb513..a57a694e126668684bf9310804aa0f50aea7f062 100644 (file)
@@ -7,38 +7,22 @@
  */
 package org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser;
 
-import java.util.Collections;
-
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParser;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 
 /**
  * Abstract(base) parser for MapNodes, parses elements of type E.
  *
- * @param <E> type of elements to be parsed
+ * @param <E>
+ *            type of elements to be parsed
  */
-public abstract class MapNodeBaseParser<E> implements ToNormalizedNodeParser<E, MapNode, ListSchemaNode> {
-
-    @Override
-    public final MapNode parse(Iterable<E> childNodes, ListSchemaNode schema) {
-        CollectionNodeBuilder<MapEntryNode, MapNode> listBuilder = Builders.mapBuilder(schema);
+public abstract class MapNodeBaseParser<E> extends ListNodeBaseParser<E, MapEntryNode, MapNode, ListSchemaNode> {
 
-        for (E childNode : childNodes) {
-            MapEntryNode listChild = getMapEntryNodeParser().parse(Collections.singletonList(childNode), schema);
-            listBuilder.withChild(listChild);
-        }
-
-        return listBuilder.build();
+    protected CollectionNodeBuilder<MapEntryNode, MapNode> provideBuilder(ListSchemaNode schema) {
+        return Builders.mapBuilder(schema);
     }
 
-    /**
-     *
-     * @return parser for inner MapEntryNodes used to parse every entry of MapNode, might be the same instance in case its immutable
-     */
-    protected abstract ToNormalizedNodeParser<E, MapEntryNode, ListSchemaNode> getMapEntryNodeParser();
-
-}
+}
\ No newline at end of file