X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fadapter%2FLazyDataTreeModification.java;h=4e486c65d411fe0b89faea2e3c00e3a8872f45c2;hb=b8a896e6dfc47374f99efee157683dc8a7ef8860;hp=530b490649a1353c6738a742c72d96032f2fb413;hpb=5901ab384ee5e8c77c19a0e6fde35b7804973dbd;p=mdsal.git diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModification.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModification.java index 530b490649..4e486c65d4 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModification.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModification.java @@ -43,32 +43,34 @@ final class LazyDataTreeModification implements DataTreeMo @SuppressWarnings({"unchecked", "rawtypes"}) static @Nullable DataTreeModification from(final CurrentAdapterSerializer serializer, - final DataTreeCandidate domChange, final LogicalDatastoreType datastoreType, final Class augment) { + final DataTreeCandidate domChange, final LogicalDatastoreType datastoreType, + final @Nullable Class> augment) { final var bindingPath = createBindingPath(serializer, domChange.getRootPath(), augment); final var codec = serializer.getSubtreeCodec(bindingPath); final var modification = LazyDataObjectModification.from(codec, domChange.getRootNode()); return modification == null ? null - : new LazyDataTreeModification(DataTreeIdentifier.create(datastoreType, bindingPath), modification); + : new LazyDataTreeModification(DataTreeIdentifier.of(datastoreType, bindingPath), modification); } - @SuppressWarnings({"unchecked", "rawtypes"}) static @Nullable DataTreeModification from(final CurrentAdapterSerializer serializer, - final DOMDataTreeCandidate candidate, final Class augment) { + final DOMDataTreeCandidate candidate, final @Nullable Class augment) { final var domRootPath = candidate.getRootPath(); - final var bindingPath = createBindingPath(serializer, domRootPath.getRootIdentifier(), augment); + @SuppressWarnings("unchecked") + final var bindingPath = (InstanceIdentifier) createBindingPath(serializer, domRootPath.path(), augment); final var codec = serializer.getSubtreeCodec(bindingPath); - final var modification = LazyDataObjectModification.from(codec, candidate.getRootNode()); + @SuppressWarnings("unchecked") + final var modification = (DataObjectModification) LazyDataObjectModification.from(codec, + candidate.getRootNode()); return modification == null ? null - : new LazyDataTreeModification(DataTreeIdentifier.create(domRootPath.getDatastoreType(), bindingPath), - modification); + : new LazyDataTreeModification<>(DataTreeIdentifier.of(domRootPath.datastore(), bindingPath), modification); } static @NonNull List> from(final CurrentAdapterSerializer codec, final List domChanges, final LogicalDatastoreType datastoreType, - final Class augment) { + final @Nullable Class> augment) { final var result = new ArrayList>(domChanges.size()); for (var domChange : domChanges) { - final var bindingChange = from(codec, domChange, datastoreType, augment); + final var bindingChange = LazyDataTreeModification.from(codec, domChange, datastoreType, augment); if (bindingChange != null) { result.add(bindingChange); } @@ -82,7 +84,7 @@ final class LazyDataTreeModification implements DataTreeMo // codec and mis-report what is actually going on. @SuppressWarnings({"unchecked", "rawtypes"}) private static @NonNull InstanceIdentifier createBindingPath(final CurrentAdapterSerializer serializer, - final YangInstanceIdentifier domPath, final Class augment) { + final YangInstanceIdentifier domPath, final @Nullable Class augment) { final var bindingPath = serializer.coerceInstanceIdentifier(domPath); return augment == null ? bindingPath : bindingPath.augmentation((Class) augment.asSubclass(Augmentation.class)); }