Use instanceof expression for yang-xpath-api equality
[yangtools.git] / xpath / yang-xpath-api / src / main / java / org / opendaylight / yangtools / yang / xpath / api / YangQNameExpr.java
index 1c90f3c58720bc4f63245a1815ff330aad60c630..c9dd4d65b899117a452a9aa11fa9817127d101f4 100644 (file)
@@ -11,8 +11,8 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.yang.common.AbstractQName;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName;
 
 /**
  * An XPath QName expression. This is an exact QName, which cannot be converted to a string literal compatible with
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.common.QName;
  * @author Robert Varga
  */
 @Beta
-public abstract class YangQNameExpr implements YangExpr, QNameReferent {
+public abstract sealed class YangQNameExpr implements YangExpr, QNameReferent {
     public static final class Resolved extends YangQNameExpr implements ResolvedQNameReferent {
         private static final long serialVersionUID = 1L;
 
@@ -48,7 +48,7 @@ public abstract class YangQNameExpr implements YangExpr, QNameReferent {
 
         @Override
         public boolean equals(final @Nullable Object obj) {
-            return this == obj || obj instanceof Resolved && qname.equals(((Resolved) obj).qname);
+            return this == obj || obj instanceof Resolved other && qname.equals(other.qname);
         }
 
         @Override
@@ -57,17 +57,17 @@ public abstract class YangQNameExpr implements YangExpr, QNameReferent {
         }
     }
 
-    public static final class Unresolved extends YangQNameExpr implements UnresolvedQNameReferent<Resolved> {
+    public static final class Unresolved extends YangQNameExpr implements UnresolvedQNameReferent {
         private static final long serialVersionUID = 1L;
 
-        private final AbstractQName qname;
+        private final UnresolvedQName qname;
 
-        Unresolved(final AbstractQName qname) {
+        Unresolved(final UnresolvedQName qname) {
             this.qname = requireNonNull(qname);
         }
 
         @Override
-        public AbstractQName getQName() {
+        public UnresolvedQName getQName() {
             return qname;
         }
 
@@ -78,7 +78,7 @@ public abstract class YangQNameExpr implements YangExpr, QNameReferent {
 
         @Override
         public boolean equals(final @Nullable Object obj) {
-            return this == obj || obj instanceof Unresolved && qname.equals(((Unresolved) obj).qname);
+            return this == obj || obj instanceof Unresolved other && qname.equals(other.qname);
         }
 
         @Override
@@ -89,11 +89,7 @@ public abstract class YangQNameExpr implements YangExpr, QNameReferent {
 
     private static final long serialVersionUID = 1L;
 
-    YangQNameExpr() {
-        // Prevent instantiation
-    }
-
-    public static Unresolved of(final AbstractQName qname) {
+    public static Unresolved of(final UnresolvedQName qname) {
         return new Unresolved(qname);
     }