X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fattributes%2Ffromxml%2FObjectNameAttributeReadingStrategy.java;h=709c8d23b864e5af11a76e21ebd723ec3efb5121;hb=f783b9873b0efedd5f757ed7300f4671c0e77bdd;hp=7a4ba31255ac08e0099dab72830fe7cdbb2a48a3;hpb=4f4df9918bc2d1447393edac6fbf3a2d4f9d9186;p=controller.git diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java index 7a4ba31255..709c8d23b8 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/ObjectNameAttributeReadingStrategy.java @@ -8,12 +8,12 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml; import com.google.common.base.Preconditions; -import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.mapping.ObjectNameAttributeMappingStrategy; -import org.opendaylight.controller.netconf.util.xml.XmlElement; -import org.opendaylight.controller.netconf.util.xml.XmlNetconfConstants; - import java.util.List; import java.util.Map; +import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.mapping.ObjectNameAttributeMappingStrategy; +import org.opendaylight.controller.netconf.util.xml.XmlElement; public class ObjectNameAttributeReadingStrategy extends AbstractAttributeReadingStrategy { @@ -24,7 +24,7 @@ public class ObjectNameAttributeReadingStrategy extends AbstractAttributeReading } @Override - AttributeConfigElement readElementHook(List configNodes) { + AttributeConfigElement readElementHook(List configNodes) throws NetconfDocumentedException { XmlElement firstChild = configNodes.get(0); Preconditions.checkState(configNodes.size() == 1, "This element should be present only once " + firstChild @@ -34,7 +34,7 @@ public class ObjectNameAttributeReadingStrategy extends AbstractAttributeReading return AttributeConfigElement.create(getNullableDefault(), resolve(firstChild)); } - private ObjectNameAttributeMappingStrategy.MappedDependency resolve(XmlElement firstChild) { + private ObjectNameAttributeMappingStrategy.MappedDependency resolve(XmlElement firstChild) throws NetconfDocumentedException{ XmlElement typeElement = firstChild.getOnlyChildElementWithSameNamespace(XmlNetconfConstants.TYPE_KEY); Map.Entry prefixNamespace = typeElement.findNamespaceOfTextContent(); @@ -47,17 +47,20 @@ public class ObjectNameAttributeReadingStrategy extends AbstractAttributeReading dependencyName); } - public static String checkPrefixAndExtractServiceName(XmlElement typeElement, Map.Entry prefixNamespace) { + public static String checkPrefixAndExtractServiceName(XmlElement typeElement, Map.Entry prefixNamespace) throws NetconfDocumentedException { String serviceName = typeElement.getTextContent(); - - Preconditions.checkState(prefixNamespace.equals("") == false, "Service %s value not prefixed with namespace", + Preconditions.checkNotNull(prefixNamespace.getKey(), "Service %s value cannot be linked to namespace", XmlNetconfConstants.TYPE_KEY); - String prefix = prefixNamespace.getKey() + PREFIX_SEPARATOR; - Preconditions.checkState(serviceName.startsWith(prefix), - "Service %s not correctly prefixed, expected %s, but was %s", XmlNetconfConstants.TYPE_KEY, prefix, - serviceName); - serviceName = serviceName.substring(prefix.length()); - return serviceName; + if(prefixNamespace.getKey().isEmpty()) { + return serviceName; + } else { + String prefix = prefixNamespace.getKey() + PREFIX_SEPARATOR; + Preconditions.checkState(serviceName.startsWith(prefix), + "Service %s not correctly prefixed, expected %s, but was %s", XmlNetconfConstants.TYPE_KEY, prefix, + serviceName); + serviceName = serviceName.substring(prefix.length()); + return serviceName; + } } }