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.RestconfDocumentedException;
-import org.opendaylight.netconf.sal.restconf.impl.RestconfError;
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;
* <li>all (config + state)
* </ul>
*
+ * @deprecated move to splitted module restconf-nb-rfc8040
*/
+@Deprecated
public final class ReadDataTransactionUtil {
private ReadDataTransactionUtil() {
/**
* Parse parameters from URI request and check their types and values.
*
- *
* @param identifier
* {@link InstanceIdentifierContext}
* @param uriInfo
* 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);
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(
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()) {
}
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":
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) {
* 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);
configDataNode = readDataViaTransaction(transactionNode);
} else {
configDataNode = prepareDataByParamWithDef(readDataViaTransaction(transactionNode),
- transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa);
+ transactionNode.getInstanceIdentifier().getInstanceIdentifier(), withDefa, ctx);
}
// if no data exists