X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fblueprint%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fblueprint%2Fext%2FBindingContext.java;h=cfa0228747e3f0ec787ce2c8ed658db5617d41b2;hb=f40e99a51cd3fc2c9be3ac8aa0772bdb6b6ce479;hp=14b7966606c6229c37e6746a5ec705862d3f86d1;hpb=df08a3a83317a52a1f7eaaca91d6c23d9beb4e7a;p=controller.git diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/BindingContext.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/BindingContext.java index 14b7966606..cfa0228747 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/BindingContext.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/BindingContext.java @@ -15,24 +15,22 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.net.URISyntaxException; import java.util.Set; -import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.contract.Naming; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; @@ -88,20 +86,14 @@ public abstract class BindingContext { } public NormalizedNode parseDataElement(final Element element, final SchemaTreeInference dataSchema) - throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { - final NormalizedNodeResult resultHolder = new NormalizedNodeResult(); + throws XMLStreamException, IOException, SAXException, URISyntaxException { + final NormalizationResultHolder resultHolder = new NormalizationResultHolder(); final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder); final XmlParserStream xmlParser = XmlParserStream.create(writer, dataSchema); xmlParser.traverse(new DOMSource(element)); - final NormalizedNode result = resultHolder.getResult(); - if (result instanceof MapNode) { - final MapNode mapNode = (MapNode) result; - final MapEntryNode mapEntryNode = mapNode.body().iterator().next(); - return mapEntryNode; - } - - return result; + final NormalizedNode result = resultHolder.getResult().data(); + return result instanceof MapNode mapNode ? mapNode.body().iterator().next() : result; } public abstract NormalizedNode newDefaultNode(SchemaTreeInference dataSchema); @@ -141,7 +133,7 @@ public abstract class BindingContext { final String listKeyValue) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { // We assume the yang list key type is string. - Identifier keyInstance = (Identifier) bindingClass.getMethod(BindingMapping.IDENTIFIABLE_KEY_NAME) + Identifier keyInstance = (Identifier) bindingClass.getMethod(Naming.IDENTIFIABLE_KEY_NAME) .getReturnType().getConstructor(String.class).newInstance(listKeyValue); InstanceIdentifier appConfigPath = InstanceIdentifier.builder((Class)bindingClass, keyInstance).build(); return new ListBindingContext(bindingClass, appConfigPath, listKeyValue);