From ed7ab39d4bb0034e9eea5baafa06399e7e78ea88 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 14 Oct 2020 17:35:22 +0200 Subject: [PATCH] Shortcut PutDataTransactionUtil.readData() Simplify the dispatch between utils, making it clear we do not need a SchemaContext in this path. It also clarifies the contract to the point it is clear PutDataTransactionUtil.readList() is an utter misnomer and the wrong place to do things. Change-Id: I6669e5982cfe84c44cefc769ed7dca22d924d86c Signed-off-by: Robert Varga --- .../rests/utils/PostDataTransactionUtil.java | 19 +++++----------- .../rests/utils/PutDataTransactionUtil.java | 22 +++++++++---------- .../rests/utils/ReadDataTransactionUtil.java | 3 +-- 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java index d3cc4531f8..0c9d2f4280 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java @@ -104,8 +104,7 @@ public final class PostDataTransactionUtil { switch (insert) { case "first": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { makePost(path, data, schemaContext, strategy); @@ -117,8 +116,7 @@ public final class PostDataTransactionUtil { makePost(path, readData, schemaContext, strategy); return strategy.commit(); } else { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { @@ -136,8 +134,7 @@ public final class PostDataTransactionUtil { return strategy.commit(); case "before": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { makePost(path, data, schemaContext, strategy); @@ -148,8 +145,7 @@ public final class PostDataTransactionUtil { data, schemaContext, point, readList, true, strategy); return strategy.commit(); } else { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { @@ -163,8 +159,7 @@ public final class PostDataTransactionUtil { } case "after": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { makePost(path, data, schemaContext, strategy); @@ -175,9 +170,7 @@ public final class PostDataTransactionUtil { data, schemaContext, point, readList, false, strategy); return strategy.commit(); } else { - final NormalizedNode readData = PutDataTransactionUtil.readList(path.getParent(), - schemaContext, strategy, schemaNode); - + final NormalizedNode readData = PutDataTransactionUtil.readList(strategy, path.getParent()); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { makePost(path, data, schemaContext, strategy); diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java index 63a2d9c12a..1413a3d8d4 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java @@ -185,7 +185,7 @@ public final class PutDataTransactionUtil { switch (insert) { case "first": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { return makePut(path, schemaContext, strategy, data, exists); @@ -197,7 +197,7 @@ public final class PutDataTransactionUtil { return strategy.commit(); } } else { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { @@ -215,7 +215,7 @@ public final class PutDataTransactionUtil { return makePut(path, schemaContext, strategy, data, exists); case "before": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { return makePut(path, schemaContext, strategy, data, exists); @@ -225,7 +225,7 @@ public final class PutDataTransactionUtil { return strategy.commit(); } } else { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { @@ -238,7 +238,7 @@ public final class PutDataTransactionUtil { } case "after": if (schemaNode instanceof ListSchemaNode) { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedMapNode readList = (OrderedMapNode) readData; if (readList == null || readList.getValue().isEmpty()) { return makePut(path, schemaContext, strategy, data, exists); @@ -248,7 +248,7 @@ public final class PutDataTransactionUtil { return strategy.commit(); } } else { - final NormalizedNode readData = readList(path, schemaContext, strategy, schemaNode); + final NormalizedNode readData = readList(strategy, path); final OrderedLeafSetNode readLeafList = (OrderedLeafSetNode) readData; if (readLeafList == null || readLeafList.getValue().isEmpty()) { @@ -266,12 +266,10 @@ public final class PutDataTransactionUtil { } } - public static NormalizedNode readList(final YangInstanceIdentifier path, - final EffectiveModelContext schemaContext, - final RestconfStrategy strategy, - final DataSchemaNode schemaNode) { - return ReadDataTransactionUtil.readData(RestconfDataServiceConstant.ReadData.CONFIG, path, strategy, null, - schemaContext); + // FIXME: this method is only called from a context where we are modifying data. This should be part of strategy, + // requiring an already-open transaction. It also must return a future, so it can be properly composed. + static NormalizedNode readList(final RestconfStrategy strategy, final YangInstanceIdentifier path) { + return ReadDataTransactionUtil.readDataViaTransaction(strategy, LogicalDatastoreType.CONFIGURATION, path, true); } private static void insertWithPointLeafListPut(final RestconfStrategy strategy, diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/ReadDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/ReadDataTransactionUtil.java index 9c52523e74..086ed2aaaf 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/ReadDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/ReadDataTransactionUtil.java @@ -384,8 +384,7 @@ public final class ReadDataTransactionUtil { * in {@link RestconfStrategy} if any * @return {@link NormalizedNode} */ - private static @Nullable NormalizedNode readDataViaTransaction( - final @NonNull RestconfStrategy strategy, + static @Nullable NormalizedNode readDataViaTransaction(final @NonNull RestconfStrategy strategy, final LogicalDatastoreType store, final YangInstanceIdentifier path, final boolean closeTransactionChain) { final NormalizedNodeFactory dataFactory = new NormalizedNodeFactory(); -- 2.36.6