Merge "Fixed typo in SnapshotBackedWriteTransaction class"
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / mapping / attributes / fromxml / CompositeAttributeReadingStrategy.java
index 1cfb74d652133eb2ad22db17f15ce2547a5a93c0..792fb28027245d92c30e1bbd3d84ee99e22beced 100644 (file)
@@ -11,26 +11,25 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attri
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc;
-import org.opendaylight.controller.config.yangjmxgenerator.attribute.TOAttribute;
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
 import org.opendaylight.controller.netconf.util.xml.XmlElement;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-public class CompositeAttributeReadingStrategy extends AbstractAttributeReadingStrategy<TOAttribute> {
+public class CompositeAttributeReadingStrategy extends AbstractAttributeReadingStrategy {
 
     private final Map<String, AttributeReadingStrategy> innerStrategies;
 
-    public CompositeAttributeReadingStrategy(TOAttribute attributeIfc,
+    public CompositeAttributeReadingStrategy(String nullableDefault,
             Map<String, AttributeReadingStrategy> innerStrategies) {
-        super(attributeIfc);
+        super(nullableDefault);
         this.innerStrategies = innerStrategies;
     }
 
     @Override
-    AttributeConfigElement readElementHook(List<XmlElement> configNodes) {
+    AttributeConfigElement readElementHook(List<XmlElement> configNodes) throws NetconfDocumentedException {
 
         Preconditions.checkState(configNodes.size() == 1, "This element should be present only once %s", configNodes);
 
@@ -38,21 +37,20 @@ public class CompositeAttributeReadingStrategy extends AbstractAttributeReadingS
 
         Map<String, Object> innerMap = Maps.newHashMap();
 
-        Map<String, AttributeIfc> inner = getAttributeIfc().getYangPropertiesToTypesMap();
-
         List<XmlElement> recognisedChildren = Lists.newArrayList();
-        for (Entry<String, AttributeIfc> innerAttrEntry : inner.entrySet()) {
-            List<XmlElement> childItem = complexElement.getChildElementsWithSameNamespace(innerAttrEntry.getKey());
+        for (Entry<String, AttributeReadingStrategy> innerAttrEntry : innerStrategies.entrySet()) {
+            List<XmlElement> childItem = null;
+            childItem = complexElement.getChildElementsWithSameNamespace(innerAttrEntry.getKey());
             recognisedChildren.addAll(childItem);
 
-            AttributeConfigElement resolvedInner = innerStrategies.get(innerAttrEntry.getKey()).readElement(childItem);
+            AttributeConfigElement resolvedInner = innerAttrEntry.getValue().readElement(childItem);
 
             innerMap.put(innerAttrEntry.getKey(), resolvedInner.getValue());
         }
 
         complexElement.checkUnrecognisedElements(recognisedChildren);
 
-        return AttributeConfigElement.create(getAttributeIfc(), innerMap);
+        return AttributeConfigElement.create(getNullableDefault(), innerMap);
     }
 
 }