- TransactionContextWrapper contextWrapper = getContextWrapper(path);
- contextWrapper.maybeExecuteTransactionOperation(new TransactionOperation() {
- @Override
- public void invoke(TransactionContext transactionContext) {
- transactionContext.writeData(path, data);
- }
- });
+ // Now distribute children as needed
+ for (DataContainerChild child : rootData.body()) {
+ final String shardName = shardNameFromRootChild(child);
+ verifyNotNull(rootBuilders.get(shardName), "Failed to find builder for %s", shardName).addChild(child);
+ }
+
+ // Now dispatch all writes
+ for (Entry<String, DataContainerNodeBuilder<NodeIdentifier, ContainerNode>> entry : rootBuilders.entrySet()) {
+ getContextWrapper(entry.getKey()).maybeExecuteTransactionOperation(new WriteOperation(
+ YangInstanceIdentifier.empty(), entry.getValue().build()));
+ }
+ }
+
+ private void executeModification(final TransactionModificationOperation operation) {
+ getContextWrapper(operation.path()).maybeExecuteTransactionOperation(operation);
+ }
+
+ private static ContainerNode checkRootData(final NormalizedNode data) {
+ // Root has to be a container
+ checkArgument(data instanceof ContainerNode, "Invalid root data %s", data);
+ return (ContainerNode) data;