From d9051de0269b18ca9bbcf1ce43e29e666f94dd1b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 3 May 2020 10:04:18 +0200 Subject: [PATCH] Add InstanceIdentifier.verifyTarget() There are a number of places where users are casting InstanceIdentifiers, just to restore type-safety after a type-unsafe operation, such as going through serialization. Add InstanceIdentifier.verifyTarget(), which restores type safety. Change-Id: I2bfa69eb938b4a6b86b88e4054369b3abadf7c7d Signed-off-by: Robert Varga --- .../yang/binding/InstanceIdentifier.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java index 8627422ee7..626aaf043a 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java @@ -8,10 +8,12 @@ package org.opendaylight.yangtools.yang.binding; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -90,6 +92,20 @@ public class InstanceIdentifier implements Path @NonNull InstanceIdentifier verifyTarget(final Class target) { + verify(target.equals(targetType), "Cannot adapt %s to %s", this, target); + return (InstanceIdentifier) this; + } + /** * Return the path argument chain which makes up this instance identifier. * -- 2.36.6