package org.opendaylight.restconf.nb.rfc8040.utils.parser;
import com.google.common.base.CharMatcher;
+import org.opendaylight.yangtools.yang.common.YangNames;
/**
* Various constants related to RFC3986 (URI) and RFC7950 (YANG) parsing in the context of RFC8040.
// FIXME: this space should not be here, but that was a day-0 bug and we have asserts on this
+ " ";
- // First character of RFC7950 "identifier" rule
- static final CharMatcher YANG_IDENTIFIER_START =
- CharMatcher.inRange('A', 'Z').or(CharMatcher.inRange('a', 'z').or(CharMatcher.is('_'))).precomputed();
// Subsequent characters of RFC7950 "identifier" rule
- static final CharMatcher YANG_IDENTIFIER_PART =
- YANG_IDENTIFIER_START.or(CharMatcher.inRange('0', '9')).or(CharMatcher.anyOf("-.")).precomputed();
+ static final CharMatcher YANG_IDENTIFIER_PART = YangNames.NOT_IDENTIFIER_PART.negate().precomputed();
private ParserConstants() {
// Hidden on purpose
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.YangNames;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
final String name = moduleName.next();
RestconfDocumentedException.throwIf(
- name.isEmpty() || !ParserConstants.YANG_IDENTIFIER_START.matches(name.charAt(0)),
+ name.isEmpty() || !YangNames.IDENTIFIER_START.matches(name.charAt(0)),
"Identifier must start with character from set 'a-zA-Z_", ErrorType.PROTOCOL, ErrorTag.INVALID_VALUE);
RestconfDocumentedException.throwIf(name.toUpperCase(Locale.ROOT).startsWith("XML"),
"Identifier must NOT start with XML ignore case.", ErrorType.PROTOCOL, ErrorTag.INVALID_VALUE);
RestconfDocumentedException.throwIf(
- !ParserConstants.YANG_IDENTIFIER_PART.matchesAllOf(name.substring(1)),
+ YangNames.NOT_IDENTIFIER_PART.matchesAnyOf(name.substring(1)),
"Supplied name has not expected identifier format.", ErrorType.PROTOCOL, ErrorTag.INVALID_VALUE);
return name;
import org.opendaylight.yangtools.yang.common.ErrorTag;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.YangNames;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
}
private void checkValidIdentifierStart() {
- checkValid(ParserConstants.YANG_IDENTIFIER_START.matches(currentChar()), ErrorTag.MALFORMED_MESSAGE,
+ checkValid(YangNames.IDENTIFIER_START.matches(currentChar()), ErrorTag.MALFORMED_MESSAGE,
"Identifier must start with character from set 'a-zA-Z_'");
}