From a6a3d1e07ba12cc69b7fc5651abeb7eca5fb5c5e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 25 Apr 2022 17:21:29 +0200 Subject: [PATCH] Use pattern matching on instanceof in yang-common This simplifies our equals() methods quite a bit. Change-Id: If4d0fbf6bd45c58781a93f57d005b409ed9fe629 Signed-off-by: Robert Varga --- .../yang/common/BiMapYangNamespaceContext.java | 3 +-- .../yang/common/CanonicalValueViolation.java | 11 ++--------- .../yangtools/yang/common/Decimal64.java | 2 +- .../yangtools/yang/common/ErrorTag.java | 2 +- .../yangtools/yang/common/QName.java | 18 ++++++------------ .../yangtools/yang/common/QNameModule.java | 10 ++-------- .../yangtools/yang/common/Revision.java | 2 +- .../yangtools/yang/common/Uint16.java | 2 +- .../yangtools/yang/common/Uint32.java | 2 +- .../yangtools/yang/common/Uint64.java | 2 +- .../yangtools/yang/common/Uint8.java | 2 +- .../yangtools/yang/common/UnresolvedQName.java | 5 ++--- .../yangtools/yang/common/XMLNamespace.java | 2 +- 13 files changed, 21 insertions(+), 42 deletions(-) diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContext.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContext.java index 69f44144bd..25179b0451 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContext.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/BiMapYangNamespaceContext.java @@ -74,8 +74,7 @@ public final class BiMapYangNamespaceContext implements YangNamespaceContext, Wr @Override public boolean equals(final Object obj) { - return this == obj || obj instanceof BiMapYangNamespaceContext - && mapping.equals(((BiMapYangNamespaceContext) obj).mapping); + return this == obj || obj instanceof BiMapYangNamespaceContext other && mapping.equals(other.mapping); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/CanonicalValueViolation.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/CanonicalValueViolation.java index 6a21058faa..b766114ed7 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/CanonicalValueViolation.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/CanonicalValueViolation.java @@ -67,7 +67,6 @@ public abstract class CanonicalValueViolation implements Immutable, Serializable } @Override - @SuppressFBWarnings("NP_NONNULL_RETURN_VIOLATION") @Nullable String appTag() { return null; } @@ -140,14 +139,8 @@ public abstract class CanonicalValueViolation implements Immutable, Serializable @Override public final boolean equals(final @Nullable Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof CanonicalValueViolation)) { - return false; - } - final CanonicalValueViolation other = (CanonicalValueViolation) obj; - return Objects.equals(appTag(), other.appTag()) && Objects.equals(message(), other.message()); + return this == obj || obj instanceof CanonicalValueViolation other + && Objects.equals(appTag(), other.appTag()) && Objects.equals(message(), other.message()); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Decimal64.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Decimal64.java index c91e42f417..d6b891ae0f 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Decimal64.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Decimal64.java @@ -473,7 +473,7 @@ public class Decimal64 extends Number implements CanonicalValue { @Override public final boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Decimal64 && equalsImpl((Decimal64) obj); + return this == obj || obj instanceof Decimal64 other && equalsImpl(other); } /** diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/ErrorTag.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/ErrorTag.java index 80de872152..90bce02634 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/ErrorTag.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/ErrorTag.java @@ -178,7 +178,7 @@ public final class ErrorTag implements Serializable { @Override public boolean equals(final @Nullable Object obj) { - return obj == this || obj instanceof ErrorTag && elementBody.equals(((ErrorTag) obj).elementBody); + return obj == this || obj instanceof ErrorTag other && elementBody.equals(other.elementBody); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index 60072a1b59..d836d9287d 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -223,8 +223,8 @@ public final class QName extends AbstractQName implements Comparable { * @throws IOException if I/O error occurs */ public static @NonNull QName readFrom(final DataInput in) throws IOException { - if (in instanceof QNameAwareDataInput) { - return ((QNameAwareDataInput) in).readQName(); + if (in instanceof QNameAwareDataInput aware) { + return aware.readQName(); } final QNameModule module = QNameModule.readFrom(in); @@ -306,14 +306,8 @@ public final class QName extends AbstractQName implements Comparable { */ @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof QName)) { - return false; - } - final QName other = (QName) obj; - return Objects.equals(getLocalName(), other.getLocalName()) && module.equals(other.module); + return this == obj || obj instanceof QName other && getLocalName().equals(other.getLocalName()) + && module.equals(other.module); } @Override @@ -380,8 +374,8 @@ public final class QName extends AbstractQName implements Comparable { @Override public void writeTo(final DataOutput out) throws IOException { - if (out instanceof QNameAwareDataOutput) { - ((QNameAwareDataOutput) out).writeQName(this); + if (out instanceof QNameAwareDataOutput aware) { + aware.writeQName(this); } else { module.writeTo(out); out.writeUTF(getLocalName()); diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java index a4f345f6e6..bfaa2f23eb 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QNameModule.java @@ -155,14 +155,8 @@ public final class QNameModule implements Comparable, Immutable, Se @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof QNameModule)) { - return false; - } - final QNameModule other = (QNameModule) obj; - return Objects.equals(revision, other.revision) && namespace.equals(other.namespace); + return this == obj || obj instanceof QNameModule other + && Objects.equals(revision, other.revision) && namespace.equals(other.namespace); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java index a7e0d20905..a7abcb6719 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Revision.java @@ -144,7 +144,7 @@ public final class Revision implements Comparable, Immutable, Serializ @Override public boolean equals(final Object obj) { - return this == obj || obj instanceof Revision && str.equals(((Revision)obj).str); + return this == obj || obj instanceof Revision other && str.equals(other.str); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint16.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint16.java index 7671c7f15f..dbce6e91b7 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint16.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint16.java @@ -395,7 +395,7 @@ public class Uint16 extends Number implements CanonicalValue { @Override public final boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Uint16 && value == ((Uint16)obj).value; + return this == obj || obj instanceof Uint16 other && value == other.value; } /** diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint32.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint32.java index 541356fbc5..e106d18ff2 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint32.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint32.java @@ -412,7 +412,7 @@ public class Uint32 extends Number implements CanonicalValue { @Override public final boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Uint32 && value == ((Uint32)obj).value; + return this == obj || obj instanceof Uint32 other && value == other.value; } /** diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint64.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint64.java index b2e2e4b0cf..68aaf80d7c 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint64.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint64.java @@ -439,7 +439,7 @@ public class Uint64 extends Number implements CanonicalValue { @Override public final boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Uint64 && value == ((Uint64)obj).value; + return this == obj || obj instanceof Uint64 other && value == other.value; } /** diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint8.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint8.java index 48530d7a45..2f218fa2ba 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint8.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/Uint8.java @@ -370,7 +370,7 @@ public class Uint8 extends Number implements CanonicalValue { @Override public final boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Uint8 && value == ((Uint8)obj).value; + return this == obj || obj instanceof Uint8 other && value == other.value; } /** diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/UnresolvedQName.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/UnresolvedQName.java index 3865b5863c..bdf614eb87 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/UnresolvedQName.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/UnresolvedQName.java @@ -100,7 +100,7 @@ public abstract sealed class UnresolvedQName extends AbstractQName { @Override public boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Qualified && getLocalName().equals(((Qualified) obj).getLocalName()); + return this == obj || obj instanceof Qualified other && getLocalName().equals(other.getLocalName()); } @Override @@ -178,8 +178,7 @@ public abstract sealed class UnresolvedQName extends AbstractQName { @Override public boolean equals(final @Nullable Object obj) { - return this == obj || obj instanceof Unqualified - && getLocalName().equals(((AbstractQName) obj).getLocalName()); + return this == obj || obj instanceof Unqualified other && getLocalName().equals(other.getLocalName()); } @Override diff --git a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java index f7292db2b1..1eb199a7b6 100644 --- a/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java +++ b/common/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/XMLNamespace.java @@ -65,7 +65,7 @@ public final class XMLNamespace implements Comparable, Immutable, @Override public boolean equals(final Object obj) { - return this == obj || obj instanceof XMLNamespace && namespace.equals(((XMLNamespace) obj).namespace); + return this == obj || obj instanceof XMLNamespace other && namespace.equals(other.namespace); } @Override -- 2.36.6