X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fattributes%2Fresolving%2FCompositeAttributeResolvingStrategy.java;h=9cd2eec0260d180d10242466cee5462162468605;hp=c477821051b08d03288d129fc29c1aaddd32eef6;hb=992a433ff8fd0ce7335bf5ea9e59a75602a95a19;hpb=de12565a7795af98788f8150eb0072f9c985f4a1 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/CompositeAttributeResolvingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/CompositeAttributeResolvingStrategy.java index c477821051..9cd2eec026 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/CompositeAttributeResolvingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/resolving/CompositeAttributeResolvingStrategy.java @@ -11,22 +11,22 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attri import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.opendaylight.controller.netconf.confignetconfconnector.util.Util; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.util.Map; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeType; import javax.management.openmbean.OpenDataException; import javax.management.openmbean.OpenType; -import java.util.Map; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.netconf.confignetconfconnector.util.Util; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -final class CompositeAttributeResolvingStrategy extends +class CompositeAttributeResolvingStrategy extends AbstractAttributeResolvingStrategy { private final Map>> innerTypes; private final Map yangToJavaAttrMapping; - private static final Logger logger = LoggerFactory.getLogger(CompositeAttributeResolvingStrategy.class); + private static final Logger LOG = LoggerFactory.getLogger(CompositeAttributeResolvingStrategy.class); CompositeAttributeResolvingStrategy(Map>> innerTypes, CompositeType openType, Map yangToJavaAttrMapping) { @@ -41,7 +41,7 @@ final class CompositeAttributeResolvingStrategy extends } @Override - public Optional parseAttribute(String attrName, Object value) { + public Optional parseAttribute(String attrName, Object value) throws NetconfDocumentedException { if (value == null) { return Optional.absent(); @@ -49,6 +49,7 @@ final class CompositeAttributeResolvingStrategy extends Util.checkType(value, Map.class); Map valueMap = (Map) value; + valueMap = preprocessValueMap(valueMap); Map items = Maps.newHashMap(); Map> openTypes = Maps.newHashMap(); @@ -74,12 +75,16 @@ final class CompositeAttributeResolvingStrategy extends try { parsedValue = new CompositeDataSupport(getOpenType(), items); } catch (OpenDataException e) { - throw new RuntimeException("An error occured during restoration of composite type " + this + throw new IllegalStateException("An error occured during restoration of composite type " + this + " for attribute " + attrName + " from value " + value, e); } - logger.debug("Attribute {} : {} parsed to type {} as {}", attrName, value, getOpenType(), parsedValue); + LOG.debug("Attribute {} : {} parsed to type {} as {}", attrName, value, getOpenType(), parsedValue); return Optional.of(parsedValue); } + + protected Map preprocessValueMap(Map valueMap) { + return valueMap; + } }