Split Restconf implementations (draft02 and RFC) - move
[netconf.git] / restconf / restconf-nb-bierman02 / src / main / java / org / opendaylight / restconf / restful / utils / ReadDataTransactionUtil.java
index 58bc3d1c6659588ff4beacc3820f1ed6657aea11..8bfa442e91cc922d54447b490c5f091a216dd4c4 100644 (file)
@@ -27,13 +27,12 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction;
-import org.opendaylight.netconf.sal.restconf.impl.ControllerContext;
-import org.opendaylight.netconf.sal.restconf.impl.InstanceIdentifierContext;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfDocumentedException;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfError;
-import org.opendaylight.netconf.sal.restconf.impl.WriterParameters;
-import org.opendaylight.netconf.sal.restconf.impl.WriterParameters.WriterParametersBuilder;
 import org.opendaylight.netconf.sal.streams.listeners.NotificationListenerAdapter;
+import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
+import org.opendaylight.restconf.common.context.WriterParameters;
+import org.opendaylight.restconf.common.context.WriterParameters.WriterParametersBuilder;
+import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
+import org.opendaylight.restconf.common.errors.RestconfError;
 import org.opendaylight.restconf.common.references.SchemaContextRef;
 import org.opendaylight.restconf.restful.transaction.TransactionVarsWrapper;
 import org.opendaylight.restconf.utils.mapping.RestconfMappingNodeUtil;
@@ -78,7 +77,9 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
  * <li>all (config + state)
  * </ul>
  *
+ * @deprecated move to splitted module restconf-nb-rfc8040
  */
+@Deprecated
 public final class ReadDataTransactionUtil {
 
     private ReadDataTransactionUtil() {
@@ -106,7 +107,6 @@ public final class ReadDataTransactionUtil {
     /**
      * Parse parameters from URI request and check their types and values.
      *
-     *
      * @param identifier
      *             {@link InstanceIdentifierContext}
      * @param uriInfo
@@ -195,31 +195,35 @@ public final class ReadDataTransactionUtil {
      * Read specific type of data from data store via transaction.
      *
      * @param valueOfContent
-     *             type of data to read (config, state, all)
+     *            type of data to read (config, state, all)
      * @param transactionNode
-     *             {@link TransactionVarsWrapper} - wrapper for variables
+     *            {@link TransactionVarsWrapper} - wrapper for variables
+     * @param ctx
+     *            schema context
      * @return {@link NormalizedNode}
      */
     @Nullable
     public static NormalizedNode<?, ?> readData(@Nonnull final String valueOfContent,
-            @Nonnull final TransactionVarsWrapper transactionNode) {
-        return readData(valueOfContent, transactionNode, null);
+            @Nonnull final TransactionVarsWrapper transactionNode, final SchemaContext ctx) {
+        return readData(valueOfContent, transactionNode, null, ctx);
     }
 
     /**
      * Read specific type of data from data store via transaction.
      *
      * @param valueOfContent
-     *             type of data to read (config, state, all)
+     *            type of data to read (config, state, all)
      * @param transactionNode
-     *             {@link TransactionVarsWrapper} - wrapper for variables
+     *            {@link TransactionVarsWrapper} - wrapper for variables
      * @param withDefa
-     *             vaule of with-defaults parameter
+     *            vaule of with-defaults parameter
+     * @param ctx
+     *            schema context
      * @return {@link NormalizedNode}
      */
     @Nullable
     public static NormalizedNode<?, ?> readData(@Nonnull final String valueOfContent,
-            @Nonnull final TransactionVarsWrapper transactionNode, final String withDefa) {
+            @Nonnull final TransactionVarsWrapper transactionNode, final String withDefa, final SchemaContext ctx) {
         switch (valueOfContent) {
             case RestconfDataServiceConstant.ReadData.CONFIG:
                 transactionNode.setLogicalDatastoreType(LogicalDatastoreType.CONFIGURATION);
@@ -227,14 +231,14 @@ public final class ReadDataTransactionUtil {
                     return readDataViaTransaction(transactionNode);
                 } else {
                     return prepareDataByParamWithDef(readDataViaTransaction(transactionNode),
-                            transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa);
+                            transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa, ctx);
                 }
             case RestconfDataServiceConstant.ReadData.NONCONFIG:
                 transactionNode.setLogicalDatastoreType(LogicalDatastoreType.OPERATIONAL);
                 return readDataViaTransaction(transactionNode);
 
             case RestconfDataServiceConstant.ReadData.ALL:
-                return readAllData(transactionNode, withDefa);
+                return readAllData(transactionNode, withDefa, ctx);
 
             default:
                 throw new RestconfDocumentedException(
@@ -265,9 +269,9 @@ public final class ReadDataTransactionUtil {
     public static NormalizedNode<?, ?> readData(final String identifier, final String content,
                                                 final TransactionVarsWrapper transactionNode, final String withDefa,
                                                 final SchemaContextRef schemaContextRef, final UriInfo uriInfo) {
+        final SchemaContext schemaContext = schemaContextRef.get();
         if (identifier.contains(STREAMS_PATH) && !identifier.contains(STREAM_PATH_PART)) {
             final DOMDataReadWriteTransaction wTx = transactionNode.getTransactionChain().newReadWriteTransaction();
-            final SchemaContext schemaContext = schemaContextRef.get();
             final boolean exist = SubscribeToStreamUtil.checkExist(schemaContext, wTx);
 
             for (final NotificationDefinition notificationDefinition : schemaContextRef.get().getNotifications()) {
@@ -293,11 +297,11 @@ public final class ReadDataTransactionUtil {
             }
             SubscribeToStreamUtil.submitData(wTx);
         }
-        return readData(content, transactionNode, withDefa);
+        return readData(content, transactionNode, withDefa, schemaContext);
     }
 
     private static NormalizedNode<?, ?> prepareDataByParamWithDef(final NormalizedNode<?, ?> result,
-            final YangInstanceIdentifier path, final String withDefa) {
+            final YangInstanceIdentifier path, final String withDefa, final SchemaContext ctx) {
         boolean trim;
         switch (withDefa) {
             case "trim":
@@ -310,7 +314,6 @@ public final class ReadDataTransactionUtil {
                 throw new RestconfDocumentedException("");
         }
 
-        final SchemaContext ctx = ControllerContext.getInstance().getGlobalSchema();
         final DataSchemaContextTree baseSchemaCtxTree = DataSchemaContextTree.from(ctx);
         final DataSchemaNode baseSchemaNode = baseSchemaCtxTree.getChild(path).getDataSchemaNode();
         if (result instanceof ContainerNode) {
@@ -447,13 +450,16 @@ public final class ReadDataTransactionUtil {
      * Read config and state data, then map them.
      *
      * @param transactionNode
-     *             {@link TransactionVarsWrapper} - wrapper for variables
-     * @param withDefa with-defaults parameter
+     *            {@link TransactionVarsWrapper} - wrapper for variables
+     * @param withDefa
+     *            with-defaults parameter
+     * @param ctx
+     *            schema context
      * @return {@link NormalizedNode}
      */
     @Nullable
     private static NormalizedNode<?, ?> readAllData(@Nonnull final TransactionVarsWrapper transactionNode,
-            final String withDefa) {
+            final String withDefa, final SchemaContext ctx) {
         // PREPARE STATE DATA NODE
         transactionNode.setLogicalDatastoreType(LogicalDatastoreType.OPERATIONAL);
         final NormalizedNode<?, ?> stateDataNode = readDataViaTransaction(transactionNode);
@@ -465,7 +471,7 @@ public final class ReadDataTransactionUtil {
             configDataNode = readDataViaTransaction(transactionNode);
         } else {
             configDataNode = prepareDataByParamWithDef(readDataViaTransaction(transactionNode),
-                    transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa);
+                    transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa, ctx);
         }
 
         // if no data exists