From: Robert Varga Date: Sat, 18 Apr 2015 21:31:38 +0000 (+0200) Subject: Add a revisionless QName constructor X-Git-Tag: release/lithium~118^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=544b2d33c4f1a2807f55f5ed428e319b4611dc29;p=yangtools.git Add a revisionless QName constructor We already provide a string-based constructor, but that requires a valid revision date. A QNameModule does not require a revision, which is reflected by other factory methods. Add a two-string factory method, which does not take a revision argument. Change-Id: I7c9bd36fc972a843b6b45ef972400a8f77f9c9b0 Signed-off-by: Robert Varga --- diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java index dea39fdb47..bfdfdadc80 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/QName.java @@ -267,7 +267,7 @@ public final class QName implements Immutable, Serializable, Comparable { * Local name part of QName. MUST NOT BE null. * @return * @throws NullPointerException - * If any of paramaters is null. + * If any of parameters is null. * @throws IllegalArgumentException * If namespace is not valid URI or * revision is not according to format @@ -275,15 +275,34 @@ public final class QName implements Immutable, Serializable, Comparable { */ public static QName create(final String namespace, final String revision, final String localName) throws IllegalArgumentException { - final URI namespaceUri; + final URI namespaceUri = parseNamespace(namespace); + final Date revisionDate = parseRevision(revision); + return create(namespaceUri, revisionDate, localName); + } + + private static URI parseNamespace(final String namespace) { try { - namespaceUri = new URI(namespace); + return new URI(namespace); } catch (URISyntaxException ue) { throw new IllegalArgumentException(String.format("Namespace '%s' is not a valid URI", namespace), ue); } + } - Date revisionDate = parseRevision(revision); - return create(namespaceUri, revisionDate, localName); + /** + * Creates new QName. + * + * @param namespace + * Namespace of QName, MUST NOT BE Null. + * @param localName + * Local name part of QName. MUST NOT BE null. + * @return + * @throws NullPointerException + * If any of parameters is null. + * @throws IllegalArgumentException + * If namespace is not valid URI. + */ + public static QName create(final String namespace, final String localName) throws IllegalArgumentException { + return create(parseNamespace(namespace), null, localName); } @Override