Binding QName constants to YANG Library model 53/93053/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 14 Oct 2020 13:59:30 +0000 (15:59 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 14 Oct 2020 15:08:49 +0000 (15:08 +0000)
We are depending on the model enum, hence we might as well bind
QNames to it, so that we have a consistent view.

JIRA: NETCONF-725
Change-Id: Ia04e7c9369c1f48f154d4694bc254ff126d6f35e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/Rfc8040.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/mapping/RestconfMappingNodeUtil.java

index 404afd6afdc461e1a118d33e868e09cf76c5eb57..99e52256ea68265162c0de6e45d4bc3efbf25a43 100644 (file)
@@ -8,6 +8,10 @@
 package org.opendaylight.restconf.nb.rfc8040;
 
 import java.net.URI;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.$YangModuleInfoImpl;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.Deviation;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.Submodule;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
@@ -102,25 +106,12 @@ public final class Rfc8040 {
             throw new UnsupportedOperationException("Util class");
         }
 
-        public static final String NAME = "ietf-yang-library";
-        public static final String NAMESPACE = "urn:ietf:params:xml:ns:yang:ietf-yang-library";
-        public static final URI URI_MODULE = URI.create(NAMESPACE);
-        public static final Revision REVISION =  Revision.of("2016-06-21");
-
-        public static final QNameModule MODULE_QNAME = QNameModule.create(URI_MODULE, REVISION).intern();
+        public static final QNameModule MODULE_QNAME = $YangModuleInfoImpl.getInstance().getName().getModule();
+        public static final Revision REVISION = MODULE_QNAME.getRevision().orElseThrow();
 
-        public static final String MODULE_SET_ID_LEAF = "module-set-id";
-        public static final QName MODULE_SET_ID_LEAF_QNAME = QName.create(MODULE_QNAME, MODULE_SET_ID_LEAF).intern();
+        public static final QName MODULE_SET_ID_LEAF_QNAME = QName.create(MODULE_QNAME, "module-set-id").intern();
 
-        public static final String GROUPING_MODULE_LIST = "module-list";
-        public static final QName GROUPING_MODULE_LIST_QNAME = QName.create(MODULE_QNAME, GROUPING_MODULE_LIST)
-                .intern();
-
-        public static final String MODULES_STATE_CONT = "modules-state";
-        public static final QName MODUELS_STATE_CONT_QNAME = QName.create(MODULE_QNAME, MODULES_STATE_CONT).intern();
-
-        public static final String MODULE_LIST = "module";
-        public static final QName MODULE_QNAME_LIST = QName.create(MODULE_QNAME, MODULE_LIST).intern();
+        public static final QName MODULE_QNAME_LIST = Module.QNAME;
 
         public static final String SPECIFIC_MODULE_NAME_LEAF = "name";
         public static final QName SPECIFIC_MODULE_NAME_LEAF_QNAME =
@@ -131,29 +122,19 @@ public final class Rfc8040 {
                 QName.create(MODULE_QNAME, SPECIFIC_MODULE_REVISION_LEAF).intern();
 
         public static final String BASE_URI_OF_SCHEMA = "/modules/";
-        public static final String SPECIFIC_MODULE_SCHEMA_LEAF = "schema";
-        public static final QName SPECIFIC_MODULE_SCHEMA_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SCHEMA_LEAF).intern();
-
-        public static final String SPECIFIC_MODULE_NAMESPACE_LEAF = "namespace";
+        public static final QName SPECIFIC_MODULE_SCHEMA_LEAF_QNAME = QName.create(MODULE_QNAME, "schema").intern();
         public static final QName SPECIFIC_MODULE_NAMESPACE_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_NAMESPACE_LEAF).intern();
+                QName.create(MODULE_QNAME, "namespace").intern();
 
-        public static final String SPECIFIC_MODULE_FEATURE_LEAF_LIST = "feature";
         public static final QName SPECIFIC_MODULE_FEATURE_LEAF_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_FEATURE_LEAF_LIST).intern();
+                QName.create(MODULE_QNAME, "feature").intern();
 
-        public static final String SPECIFIC_MODULE_DEVIATION_LIST = "deviation";
-        public static final QName SPECIFIC_MODULE_DEVIATION_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_DEVIATION_LIST).intern();
+        public static final QName SPECIFIC_MODULE_DEVIATION_LIST_QNAME = Deviation.QNAME;
 
-        public static final String SPECIFIC_MODULE_CONFORMANCE_LEAF = "conformance-type";
         public static final QName SPECIFIC_MODULE_CONFORMANCE_LEAF_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_CONFORMANCE_LEAF).intern();
+                QName.create(MODULE_QNAME, "conformance-type").intern();
 
-        public static final String SPECIFIC_MODULE_SUBMODULE_LIST = "submodule";
-        public static final QName SPECIFIC_MODULE_SUBMODULE_LIST_QNAME =
-                QName.create(MODULE_QNAME, SPECIFIC_MODULE_SUBMODULE_LIST).intern();
+        public static final QName SPECIFIC_MODULE_SUBMODULE_LIST_QNAME = Submodule.QNAME;
     }
 
     /**
index 596b73fea2cadf14a9c13678e9fee9a4851c373f..21a40ab50df089bc13c38ee9e53f70c22b251986 100644 (file)
@@ -20,6 +20,8 @@ import org.opendaylight.restconf.nb.rfc8040.Rfc8040.IetfYangLibrary;
 import org.opendaylight.restconf.nb.rfc8040.Rfc8040.MonitoringModule;
 import org.opendaylight.restconf.nb.rfc8040.Rfc8040.MonitoringModule.QueryParams;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModuleList;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module.ConformanceType;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Revision;
@@ -79,7 +81,7 @@ public final class RestconfMappingNodeUtil {
             mapModulesByIetfYangLibraryYang(final Collection<? extends Module> modules,
                     final Module ietfYangLibraryModule, final SchemaContext context, final String moduleSetId) {
         final DataSchemaNode modulesStateSch =
-                ietfYangLibraryModule.getDataChildByName(IetfYangLibrary.MODUELS_STATE_CONT_QNAME);
+                ietfYangLibraryModule.getDataChildByName(ModulesState.QNAME);
         final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> modulesStateBuilder =
                 Builders.containerBuilder((ContainerSchemaNode) modulesStateSch);
 
@@ -283,7 +285,7 @@ public final class RestconfMappingNodeUtil {
     private static DataSchemaNode findSchemaInListOfModulesSchema(final QName specificQName,
             final Module ietfYangLibraryModule) {
         for (final GroupingDefinition groupingDefinition : ietfYangLibraryModule.getGroupings()) {
-            if (groupingDefinition.getQName().equals(IetfYangLibrary.GROUPING_MODULE_LIST_QNAME)) {
+            if (groupingDefinition.getQName().equals(ModuleList.QNAME)) {
                 final DataSchemaNode dataChildByName =
                         groupingDefinition.getDataChildByName(IetfYangLibrary.MODULE_QNAME_LIST);
                 return ((ListSchemaNode) dataChildByName).getDataChildByName(specificQName);
@@ -324,7 +326,7 @@ public final class RestconfMappingNodeUtil {
     private static DataSchemaNode findNodeInInternGroupings(final QName qnameOfSchema,
             final Module ietfYangLibraryModule) {
         for (final GroupingDefinition groupingDefinition : ietfYangLibraryModule.getGroupings()) {
-            if (groupingDefinition.getQName().equals(IetfYangLibrary.GROUPING_MODULE_LIST_QNAME)) {
+            if (groupingDefinition.getQName().equals(ModuleList.QNAME)) {
                 for (final GroupingDefinition internalGrouping : groupingDefinition.getGroupings()) {
                     if (internalGrouping.getDataChildByName(qnameOfSchema) != null) {
                         return internalGrouping.getDataChildByName(qnameOfSchema);