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%2FSimpleIdentityRefAttributeReadingStrategy.java;h=6d702ef59fa675c7c624d3d456f9b46a60476109;hb=3d50fb7a93dfc969cf32a5dc16f2a1899e840d41;hp=8e7ba708c6cea71ba46400f99fb765a2113bf762;hpb=84248dac9ed8aa37e996e39429c8aa8ece473eaf;p=controller.git diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java index 8e7ba708c6..6d702ef59f 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/fromxml/SimpleIdentityRefAttributeReadingStrategy.java @@ -8,13 +8,12 @@ package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml; +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; import java.net.URI; import java.util.Date; import java.util.HashMap; import java.util.Map; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfig; import org.opendaylight.controller.netconf.util.xml.XmlElement; @@ -34,24 +33,29 @@ public class SimpleIdentityRefAttributeReadingStrategy extends SimpleAttributeRe @Override protected String readElementContent(XmlElement xmlElement) throws NetconfDocumentedException { - // TODO test Map.Entry namespaceOfTextContent = xmlElement.findNamespaceOfTextContent(); String content = xmlElement.getTextContent(); - String prefix = namespaceOfTextContent.getKey() + ":"; - Preconditions.checkArgument(content.startsWith(prefix), "Identity ref should be prefixed"); - - String localName = content.substring(prefix.length()); - String namespace = namespaceOfTextContent.getValue(); + final String namespace; + final String localName; + if(namespaceOfTextContent.getKey().isEmpty()) { + localName = content; + namespace = xmlElement.getNamespace(); + } else { + String prefix = namespaceOfTextContent.getKey() + ":"; + Preconditions.checkArgument(content.startsWith(prefix), "Identity ref should be prefixed with \"%s\"", prefix); + localName = content.substring(prefix.length()); + namespace = namespaceOfTextContent.getValue(); + } Date revision = null; Map revisions = identityMap.get(namespace); if(revisions.keySet().size() > 1) { - for (Date date : revisions.keySet()) { - if(revisions.get(date).containsIdName(localName)) { + for (Map.Entry revisionToIdentityEntry : revisions.entrySet()) { + if(revisionToIdentityEntry.getValue().containsIdName(localName)) { Preconditions.checkState(revision == null, "Duplicate identity %s, in namespace %s, with revisions: %s, %s detected. Cannot map attribute", - localName, namespace, revision, date); - revision = date; + localName, namespace, revision, revisionToIdentityEntry.getKey()); + revision = revisionToIdentityEntry.getKey(); } } } else {