Migrate RFC references to rfc-editor.org
[yangtools.git] / common / yang-common / src / main / java / org / opendaylight / yangtools / yang / common / AbstractQName.java
index 6ce6d2100d9a2991812922995e5b34afd82819c8..cba2118951ebaf6d2a967ec4c14d32b13db54efa 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.yangtools.yang.common;
 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
@@ -22,7 +22,7 @@ import org.opendaylight.yangtools.concepts.WritableObject;
  */
 @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;
@@ -67,6 +67,15 @@ public abstract sealed class AbstractQName implements Identifier, WritableObject
         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}.
      *
@@ -77,7 +86,7 @@ public abstract sealed class AbstractQName implements Identifier, WritableObject
         return str != null && !str.isEmpty() && checkContent(str);
     }
 
-    @Serial
+    @java.io.Serial
     abstract Object writeReplace();
 
     static final String checkLocalName(final @Nullable String localName) {