From 78b3cc3f5673afe4ba99e5f55ce90952b172f504 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 21 Jun 2023 18:50:29 +0200 Subject: [PATCH] Modernize AbstractDataObjectModification We are using deprecated methods here. Migrating to their replacement makes for a more fluent codebase. Change-Id: Ic0a1f1653f13d0bb12ec97f2ef5bd2d6d4e388e3 Signed-off-by: Robert Varga --- .../AbstractDataObjectModification.java | 25 +++++++++---------- .../adapter/LazyAugmentationModification.java | 11 +++++--- .../adapter/LazyDataObjectModification.java | 8 +++--- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractDataObjectModification.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractDataObjectModification.java index bd9a555f3e..73e44d1788 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractDataObjectModification.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractDataObjectModification.java @@ -21,7 +21,6 @@ import java.lang.invoke.VarHandle; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; import org.eclipse.jdt.annotation.NonNull; @@ -150,7 +149,7 @@ abstract sealed class AbstractDataObjectModification normalized) { - return normalized.isEmpty() ? null : deserialize(normalized.orElseThrow()); + private @Nullable T deserializeNullable(final @Nullable NormalizedNode normalized) { + return normalized == null ? null : deserialize(normalized); } abstract @Nullable T deserialize(@NonNull NormalizedNode normalized); @@ -192,10 +191,10 @@ abstract sealed class AbstractDataObjectModification, DataTreeCandidateNode>create(); - for (var domChildNode : parent.getChildNodes()) { - if (domChildNode.getModificationType() != UNMODIFIED) { + for (var domChildNode : parent.childNodes()) { + if (domChildNode.modificationType() != UNMODIFIED) { final var type = BindingStructuralType.from(domChildNode); if (type != BindingStructuralType.NOT_ADDRESSABLE) { /* @@ -331,7 +330,7 @@ abstract sealed class AbstractDataObjectModification childDataObjectCodec) { populateList(result, type, childDataObjectCodec, domChildNode); } else if (childCodec instanceof BindingAugmentationCodecTreeNode childAugmentationCodec) { @@ -366,10 +365,10 @@ abstract sealed class AbstractDataObjectModification> result, final BindingDataObjectCodecTreeNode codec, final Collection childNodes) { for (var child : childNodes) { - if (child.getModificationType() != UNMODIFIED) { + if (child.modificationType() != UNMODIFIED) { result.add(new LazyDataObjectModification<>(codec, child)); } } diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyAugmentationModification.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyAugmentationModification.java index 9b1d1e4ecc..8a2594468d 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyAugmentationModification.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyAugmentationModification.java @@ -40,7 +40,7 @@ final class LazyAugmentationModification> final Collection children) { // Filter out any unmodified children first final var domChildren = children.stream() - .filter(childMod -> childMod.getModificationType() != UNMODIFIED) + .filter(childMod -> childMod.modificationType() != UNMODIFIED) .collect(ImmutableList.toImmutableList()); // Only return a modification if there is something left return domChildren.isEmpty() ? null : new LazyAugmentationModification<>(codec, parent, domChildren); @@ -50,7 +50,10 @@ final class LazyAugmentationModification> final BindingAugmentationCodecTreeNode codec, final DataTreeCandidateNode parent) { final var builder = ImmutableList.builder(); for (var pathArg : codec.childPathArguments()) { - parent.getModifiedChild(pathArg).ifPresent(builder::add); + final var child = parent.modifiedChild(pathArg); + if (child != null) { + builder.add(child); + } } final var domChildren = builder.build(); return domChildren.isEmpty() ? null : new LazyAugmentationModification<>(codec, parent, domChildren); @@ -83,7 +86,7 @@ final class LazyAugmentationModification> DataTreeCandidateNode firstModifiedChild(final PathArgument arg) { // Not entirely efficient linear search, but otherwise we'd have to index, which is even slower return domChildNodes.stream() - .filter(child -> arg.equals(child.getIdentifier())) + .filter(child -> arg.equals(child.name())) .findFirst() .orElse(null); } @@ -91,7 +94,7 @@ final class LazyAugmentationModification> @Override ToStringHelper addToStringAttributes(final ToStringHelper helper) { return super.addToStringAttributes(helper) - .add("domType", domData.getModificationType()) + .add("domType", domData.modificationType()) .add("domChildren", domChildNodes); } } diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataObjectModification.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataObjectModification.java index b030e0ede3..d885f30c49 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataObjectModification.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataObjectModification.java @@ -28,17 +28,17 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; final class LazyDataObjectModification extends AbstractDataObjectModification> { LazyDataObjectModification(final BindingDataObjectCodecTreeNode codec, final DataTreeCandidateNode domData) { - super(domData, codec, codec.deserializePathArgument(domData.getIdentifier())); + super(domData, codec, codec.deserializePathArgument(domData.name())); } @Override Collection domChildNodes() { - return domData.getChildNodes(); + return domData.childNodes(); } @Override org.opendaylight.yangtools.yang.data.tree.api.ModificationType domModificationType() { - return domData.getModificationType(); + return domData.modificationType(); } @Override @@ -48,7 +48,7 @@ final class LazyDataObjectModification @Override DataTreeCandidateNode firstModifiedChild(final PathArgument arg) { - return domData.getModifiedChild(arg).orElse(null); + return domData.modifiedChild(arg); } @Override -- 2.36.6