import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.concepts.Identifier;
import org.opendaylight.yangtools.concepts.WritableObject;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
/**
* Abstract superclass for sharing QName references, which can either be resolved {@link QName}s or unresolved
*/
@NonNullByDefault
public abstract sealed class AbstractQName implements Identifier, WritableObject permits QName, UnresolvedQName {
- @Serial
+ @java.io.Serial
private static final long serialVersionUID = 1L;
private final String localName;
return new QName(namespace, localName);
}
+ /**
+ * Returns an {@link Unqualified} identifier formed by capturing {@link #getLocalName()}.
+ *
+ * @return An unqualified {@link UnresolvedQName}
+ */
+ public Unqualified unbind() {
+ return new Unqualified(localName);
+ }
+
/**
* Check whether a string is a valid {@code localName}.
*
return str != null && !str.isEmpty() && checkContent(str);
}
- @Serial
+ @java.io.Serial
abstract Object writeReplace();
static final String checkLocalName(final @Nullable String localName) {
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.io.Serial;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
* through {@link #bindTo(YangNamespaceContext)}.
*/
public static final class Qualified extends UnresolvedQName implements Comparable<Qualified> {
- @Serial
+ @java.io.Serial
private static final long serialVersionUID = 1L;
private static final Interner<Qualified> INTERNER = Interners.newWeakInterner();
* {@link #bindTo(QNameModule)}.
*/
public static final class Unqualified extends UnresolvedQName implements Comparable<Unqualified> {
- @Serial
+ @java.io.Serial
private static final long serialVersionUID = 1L;
private static final Interner<Unqualified> INTERNER = Interners.newWeakInterner();
- private Unqualified(final String localName) {
+ Unqualified(final String localName) {
super(localName);
}
return of(in.readUTF());
}
+ @Override
+ public Unqualified unbind() {
+ return this;
+ }
+
@Override
@SuppressFBWarnings(value = "ES_COMPARING_STRINGS_WITH_EQ", justification = "Interning identity check")
public Unqualified intern() {
}
}
- @Serial
+ @java.io.Serial
private static final long serialVersionUID = 1L;
private UnresolvedQName(final String localName) {