+ public FluentFuture<? extends CommitInfo> commit() {
+ return getDelegate().commit();
+ }
+
+ @Override
+ public final boolean cancel() {
+ return getDelegate().cancel();
+ }
+
+ /**
+ * Subclasses of this class are required to implement creation of parent nodes based on behaviour of their
+ * underlying transaction.
+ *
+ * @param store an instance of LogicalDatastoreType
+ * @param domPath an instance of YangInstanceIdentifier
+ * @param path an instance of InstanceIdentifier
+ */
+ private void ensureParentsByMerge(final LogicalDatastoreType store, final YangInstanceIdentifier domPath,
+ final InstanceIdentifier<?> path) {
+ final YangInstanceIdentifier parentPath = domPath.getParent();
+ if (parentPath != null && !parentPath.isEmpty()) {
+ final NormalizedNode<?, ?> parentNode = ImmutableNodes.fromInstanceId(
+ getCodec().runtimeContext().getSchemaContext(), parentPath);
+ getDelegate().merge(store, YangInstanceIdentifier.create(parentNode.getIdentifier()), parentNode);
+ }
+ }
+
+ private <U extends DataObject> Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> toNormalized(
+ final String operation, final InstanceIdentifier<U> path, final U data) {
+ checkArgument(!path.isWildcarded(), "Cannot %s data into wildcarded path %s", operation, path);
+ return getCodec().toNormalizedNode(path, data);