Bug 7735 - Update restconf models by RFC 8040
[netconf.git] / restconf / sal-rest-connector / src / main / java / org / opendaylight / restconf / handlers / SchemaContextHandler.java
index 70f1b72618258b2e6c79f3f905ac03fcf6c34ae3..b00d0cfabd1c589a478bc7885759a40a34c4583d 100644 (file)
@@ -13,7 +13,8 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
 import org.opendaylight.netconf.sal.restconf.impl.RestconfDocumentedException;
-import org.opendaylight.restconf.Draft18.IetfYangLibrary;
+import org.opendaylight.restconf.Rfc8040.IetfYangLibrary;
+import org.opendaylight.restconf.Rfc8040.MonitoringModule;
 import org.opendaylight.restconf.utils.mapping.RestconfMappingNodeUtil;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -52,9 +53,24 @@ public class SchemaContextHandler implements SchemaContextListenerHandler {
         this.moduleSetId++;
         final Module ietfYangLibraryModule =
                 context.findModuleByNamespaceAndRevision(IetfYangLibrary.URI_MODULE, IetfYangLibrary.DATE);
-        final NormalizedNode<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> normNode =
+        NormalizedNode<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> normNode =
                 RestconfMappingNodeUtil.mapModulesByIetfYangLibraryYang(context.getModules(), ietfYangLibraryModule,
                         context, String.valueOf(this.moduleSetId));
+        putData(normNode);
+
+        final Module monitoringModule =
+                this.context.findModuleByNamespaceAndRevision(MonitoringModule.URI_MODULE, MonitoringModule.DATE);
+        normNode = RestconfMappingNodeUtil.mapCapabilites(monitoringModule);
+        putData(normNode);
+    }
+
+    @Override
+    public SchemaContext get() {
+        return this.context;
+    }
+
+    private void putData(
+            final NormalizedNode<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> normNode) {
         final DOMDataWriteTransaction wTx = this.transactionChainHandler.get().newWriteOnlyTransaction();
         wTx.put(LogicalDatastoreType.OPERATIONAL,
                 YangInstanceIdentifier.create(NodeIdentifier.create(normNode.getNodeType())), normNode);
@@ -64,9 +80,4 @@ public class SchemaContextHandler implements SchemaContextListenerHandler {
             throw new RestconfDocumentedException("Problem occured while putting data to DS.", e);
         }
     }
-
-    @Override
-    public SchemaContext get() {
-        return this.context;
-    }
 }