X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fcommon%2FAbstractQName.java;h=d24ed22b1ce99c3d74f3e1dba811347ef3244539;hb=1bbcdd2d6510d420b916c26f54c60a1c2e1607df;hp=d45cdbed5bf4d1f46f4482663813808d2cbc1bdf;hpb=dab6e4c7199c91aeac93fca5956a0877bc16dd8e;p=yangtools.git diff --git a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/AbstractQName.java b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/AbstractQName.java index d45cdbed5b..d24ed22b1c 100644 --- a/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/AbstractQName.java +++ b/yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/AbstractQName.java @@ -72,12 +72,25 @@ public abstract class AbstractQName implements Identifier, WritableObject { return new QName(namespace, getLocalName()); } + /** + * Check whether a string is a valid {@code localName}. + * + * @param str String to check + * @return True if the string usable as a local name, false otherwise + */ + public static final boolean isValidLocalName(final @Nullable String str) { + return str != null && !str.isEmpty() && checkContent(str); + } + abstract Object writeReplace(); static final String checkLocalName(final @Nullable String localName) { checkArgument(!localName.isEmpty(), "Parameter 'localName' must be a non-empty string."); - checkArgument(IDENTIFIER_START.matches(localName.charAt(0)) && NOT_IDENTIFIER_PART.indexIn(localName, 1) == -1, - "String '%s' is not a valid identifier", localName); + checkArgument(checkContent(localName), "String '%s' is not a valid identifier", localName); return localName; } + + private static boolean checkContent(final String localName) { + return IDENTIFIER_START.matches(localName.charAt(0)) && NOT_IDENTIFIER_PART.indexIn(localName, 1) == -1; + } }