Seal JavaTypeName 10/100810/4
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Apr 2022 10:10:41 +0000 (12:10 +0200)
committerRobert Varga <nite@hq.sk>
Tue, 26 Apr 2022 15:48:32 +0000 (15:48 +0000)
JavaTypeName cannot be externally subclassed, make it a sealed class.

Change-Id: I2f79f8cf3d4ff060ebb269a1d2fc0f57a3cda604
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-model-api/src/main/java/org/opendaylight/mdsal/binding/model/api/JavaTypeName.java

index 67aea7e623f060131700862a1c50e09f581127a3..018942638f487e5f2ed8bf9c7810ba0c20806df3 100644 (file)
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
  */
 @Beta
 @NonNullByDefault
-public abstract class JavaTypeName implements Identifier, Immutable {
+public abstract sealed class JavaTypeName implements Identifier, Immutable {
     private static final class Primitive extends JavaTypeName {
         private static final long serialVersionUID = 1L;
 
@@ -88,7 +88,7 @@ public abstract class JavaTypeName implements Identifier, Immutable {
         }
     }
 
-    private abstract static class Reference extends JavaTypeName {
+    private abstract static sealed class Reference extends JavaTypeName {
         private static final long serialVersionUID = 1L;
 
         Reference(final String simpleName) {
@@ -370,15 +370,9 @@ public abstract class JavaTypeName implements Identifier, Immutable {
 
     @Override
     public final boolean equals(final @Nullable Object obj) {
-        if (obj == this) {
-            return true;
-        }
-        if (!(obj instanceof JavaTypeName)) {
-            return false;
-        }
-        final JavaTypeName other = (JavaTypeName) obj;
-        return simpleName.equals(other.simpleName) && packageName().equals(other.packageName())
-                && immediatelyEnclosingClass().equals(other.immediatelyEnclosingClass());
+        return this == obj || obj instanceof JavaTypeName other
+            && simpleName.equals(other.simpleName) && packageName().equals(other.packageName())
+            && immediatelyEnclosingClass().equals(other.immediatelyEnclosingClass());
     }
 
     /**