From 84aeaab115138639ddde496da607550640015ec5 Mon Sep 17 00:00:00 2001 From: tpantelis Date: Sat, 23 Aug 2014 09:51:00 -0400 Subject: [PATCH] Bug 1616: Issues with using container and default values in config yang Fixed issues as outlined in bug 1616. Change-Id: I6170a6d25e2fb243d6526d15058057191058bb82 Signed-off-by: tpantelis --- .../fromxml/AttributeConfigElement.java | 14 +++++++++----- .../CompositeAttributeReadingStrategy.java | 12 +++++++++--- .../attributes/fromxml/ObjectXmlReader.java | 19 +++++++++++-------- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/AttributeConfigElement.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/AttributeConfigElement.java index dcc2fa1543..2b081258c4 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/AttributeConfigElement.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/AttributeConfigElement.java @@ -19,15 +19,15 @@ import javax.management.openmbean.OpenType; * of some module. Contains default value extracted from yang file. */ public class AttributeConfigElement { - private final Object dafaultValue; + private final Object defaultValue; private final Object value; private Optional resolvedValue; private Object resolvedDefaultValue; private String jmxName; - public AttributeConfigElement(Object dafaultValue, Object value) { - this.dafaultValue = dafaultValue; + public AttributeConfigElement(Object defaultValue, Object value) { + this.defaultValue = defaultValue; this.value = value; } @@ -42,7 +42,7 @@ public class AttributeConfigElement { public void resolveValue(AttributeResolvingStrategy> attributeResolvingStrategy, String attrName) throws NetconfDocumentedException { resolvedValue = attributeResolvingStrategy.parseAttribute(attrName, value); - Optional resolvedDefault = attributeResolvingStrategy.parseAttribute(attrName, dafaultValue); + Optional resolvedDefault = attributeResolvingStrategy.parseAttribute(attrName, defaultValue); resolvedDefaultValue = resolvedDefault.isPresent() ? resolvedDefault.get() : null; } @@ -58,6 +58,10 @@ public class AttributeConfigElement { return value; } + public Object getDefaultValue() { + return defaultValue; + } + public Optional getResolvedValue() { return resolvedValue; } @@ -68,7 +72,7 @@ public class AttributeConfigElement { @Override public String toString() { - return "AttributeConfigElement [dafaultValue=" + dafaultValue + ", value=" + value + "]"; + return "AttributeConfigElement [defaultValue=" + defaultValue + ", value=" + value + "]"; } } diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/CompositeAttributeReadingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/CompositeAttributeReadingStrategy.java index 792fb28027..d06e55da62 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/CompositeAttributeReadingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/CompositeAttributeReadingStrategy.java @@ -11,6 +11,7 @@ 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.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.util.xml.XmlElement; @@ -39,13 +40,18 @@ public class CompositeAttributeReadingStrategy extends AbstractAttributeReadingS List recognisedChildren = Lists.newArrayList(); for (Entry innerAttrEntry : innerStrategies.entrySet()) { - List childItem = null; - childItem = complexElement.getChildElementsWithSameNamespace(innerAttrEntry.getKey()); + List childItem = complexElement.getChildElementsWithSameNamespace( + innerAttrEntry.getKey()); recognisedChildren.addAll(childItem); AttributeConfigElement resolvedInner = innerAttrEntry.getValue().readElement(childItem); - innerMap.put(innerAttrEntry.getKey(), resolvedInner.getValue()); + Object value = resolvedInner.getValue(); + if(value == null) { + value = resolvedInner.getDefaultValue(); + } + + innerMap.put(innerAttrEntry.getKey(), value); } complexElement.checkUnrecognisedElements(recognisedChildren); diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java index 61ea76bbfe..e690840789 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectXmlReader.java @@ -93,8 +93,9 @@ public class ObjectXmlReader extends AttributeIfcSwitchStatement inner = ((TOAttribute)getLastAttribute()).getYangPropertiesToTypesMap(); + AttributeIfc lastAttribute = getLastAttribute(); + Preconditions.checkState(lastAttribute instanceof TOAttribute); + Map inner = ((TOAttribute)lastAttribute).getYangPropertiesToTypesMap(); Map innerStrategies = Maps.newHashMap(); @@ -104,21 +105,23 @@ public class ObjectXmlReader extends AttributeIfcSwitchStatement openType) { - Preconditions.checkState(getLastAttribute() instanceof ListAttribute); - AttributeReadingStrategy innerStrategy = prepareReadingStrategy(key, ((ListAttribute) getLastAttribute()).getInnerAttribute()); - return new ArrayAttributeReadingStrategy(getLastAttribute().getNullableDefault(), innerStrategy); + AttributeIfc lastAttribute = getLastAttribute(); + Preconditions.checkState(lastAttribute instanceof ListAttribute); + AttributeReadingStrategy innerStrategy = prepareReadingStrategy(key, ((ListAttribute) lastAttribute).getInnerAttribute()); + return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy); } @Override protected AttributeReadingStrategy caseListDependeciesAttribute(ArrayType openType) { - Preconditions.checkState(getLastAttribute() instanceof ListDependenciesAttribute); + AttributeIfc lastAttribute = getLastAttribute(); + Preconditions.checkState(lastAttribute instanceof ListDependenciesAttribute); AttributeReadingStrategy innerStrategy = caseDependencyAttribute(SimpleType.OBJECTNAME); - return new ArrayAttributeReadingStrategy(getLastAttribute().getNullableDefault(), innerStrategy); + return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy); } } -- 2.36.6