Add UnqualifiedQName.tryCreate()
[yangtools.git] / yang / yang-common / src / main / java / org / opendaylight / yangtools / yang / common / UnqualifiedQName.java
index c596dd86b2d9f1a796f970185fbbf4b1915e2641..821bc910a1711ea518154bd1dfb81da877d3d5e6 100644 (file)
@@ -37,12 +37,24 @@ public final class UnqualifiedQName extends AbstractQName implements Comparable<
      *
      * @param localName The local name of this unqualified QName
      * @return An UnqualifiedQName instance
-     * @throws IllegalArgumentException if localName is null or it does not conform to YANG localName requirements.
+     * @throws NullPointerException if localName is null
+     * @throws IllegalArgumentException if localName is not a valid YANG identifier
      */
     public static UnqualifiedQName of(final String localName) {
         return new UnqualifiedQName(checkLocalName(localName));
     }
 
+    /**
+     * Create a new unqualified QName.
+     *
+     * @param localName The local name of this unqualified QName
+     * @return An UnqualifiedQName instance, or null if localName is not valid
+     */
+    @SuppressFBWarnings(value = "NP_NONNULL_RETURN_VIOLATION", justification = "Non-grok of @Nullable")
+    public static @Nullable UnqualifiedQName tryCreate(final String localName) {
+        return isValidLocalName(localName) ? new UnqualifiedQName(localName) : null;
+    }
+
     /**
      * Read an UnqualifiedQName from a DataInput. The format is expected to match the output format of
      * {@link #writeTo(DataOutput)}.