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
* @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;
@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
}
}
- 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;
}
@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
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);
}