X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fcommon%2FQName.java;h=bfdfdadc80d8721372e829c7b226eb58627e5cf1;hb=2832d604e4de5aa8136e65baca528a9be9154557;hp=18969403d01d0f6c663814170d6653fd2128eacb;hpb=3ef4f52c51985d8a431340550a6b483a425604a6;p=yangtools.git 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 18969403d0..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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.Fpre * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -8,7 +8,6 @@ package org.opendaylight.yangtools.yang.common; import static org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil.getRevisionFormat; - import java.io.Serializable; import java.net.URI; import java.net.URISyntaxException; @@ -17,7 +16,6 @@ import java.util.Date; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.objcache.ObjectCache; import org.opendaylight.yangtools.objcache.ObjectCacheFactory; @@ -64,19 +62,16 @@ public final class QName implements Immutable, Serializable, Comparable { private final QNameModule module; // Mandatory private final String localName; - // Nullable - private final String prefix; - private QName(final QNameModule module, final String prefix, final String localName) { + private QName(final QNameModule module, final String localName) { this.localName = checkLocalName(localName); - this.prefix = prefix; this.module = module; } /** * Look up specified QName in the global cache and return a shared reference. * - * @param module QName instance + * @param qname QName instance * @return Cached instance, according to {@link ObjectCache} policy. */ public static QName cachedReference(final QName qname) { @@ -94,25 +89,6 @@ public final class QName implements Immutable, Serializable, Comparable { return CACHE.getReference(what); } - /** - * QName Constructor. - * - * @param namespace - * the namespace assigned to the YANG module - * @param revision - * the revision of the YANG module - * @param prefix - * locally defined prefix assigned to local name - * @param localName - * YANG schema identifier - * - * @deprecated Prefix storage in QNames is deprecated. - */ - @Deprecated - public QName(final URI namespace, final Date revision, final String prefix, final String localName) { - this(QNameModule.create(namespace, revision), prefix, localName); - } - /** * QName Constructor. * @@ -122,7 +98,7 @@ public final class QName implements Immutable, Serializable, Comparable { * YANG schema identifier */ public QName(final URI namespace, final String localName) { - this(namespace, null, "", localName); + this(QNameModule.create(namespace, null), localName); } private static String checkLocalName(final String localName) { @@ -204,18 +180,6 @@ public final class QName implements Immutable, Serializable, Comparable { return module.getRevision(); } - /** - * Returns locally defined prefix assigned to local name - * - * @return locally defined prefix assigned to local name - * - * @deprecated Prefix storage in QNames is deprecated. - */ - @Deprecated - public String getPrefix() { - return prefix; - } - @Override public int hashCode() { final int prime = 31; @@ -232,7 +196,7 @@ public final class QName implements Immutable, Serializable, Comparable { * {@link QName} and its {@link #getLocalName()}, {@link #getNamespace()} and * {@link #getRevision()} are equals to same properties of this instance. * - * @param o the object to be compared for equality with this QName + * @param obj the object to be compared for equality with this QName * @return true if the specified object is equal to this QName * */ @@ -256,7 +220,7 @@ public final class QName implements Immutable, Serializable, Comparable { } public static QName create(final QName base, final String localName) { - return create(base.getModule(), base.getPrefix(), localName); + return create(base.getModule(), localName); } /** @@ -264,33 +228,15 @@ public final class QName implements Immutable, Serializable, Comparable { * * @param qnameModule * Namespace and revision enclosed as a QNameModule - * @param prefix - * Namespace prefix * @param localName * Local name part of QName. MUST NOT BE null. * @return Instance of QName - * - * @deprecated Prefix storage in QNames is deprecated. */ - @Deprecated - public static QName create(final QNameModule module, final String prefix, final String localName) { - if (module == null) { + public static QName create(final QNameModule qnameModule, final String localName) { + if (qnameModule == null) { throw new NullPointerException("module may not be null"); } - return new QName(module, prefix, localName); - } - - /** - * Creates new QName. - * - * @param qnameModule - * Namespace and revision enclosed as a QNameModule - * @param localName - * Local name part of QName. MUST NOT BE null. - * @return Instance of QName - */ - public static QName create(final QNameModule qnameModule, final String localName) { - return create(qnameModule, null, localName); + return new QName(qnameModule, localName); } /** @@ -305,7 +251,7 @@ public final class QName implements Immutable, Serializable, Comparable { * @return Instance of QName */ public static QName create(final URI namespace, final Date revision, final String localName) { - return create(QNameModule.create(namespace, revision), null, localName); + return create(QNameModule.create(namespace, revision), localName); } /** @@ -321,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 @@ -329,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