Improve nullness guarantees in createQName().
Change-Id: Icdb58b2ede7a5e2b8f380614719f3a1842255e53
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
* @param prefix Prefix for namespace
* @param localName local name
* @return QName
* @param prefix Prefix for namespace
* @param localName local name
* @return QName
- * @throws IllegalArgumentException if the prefix cannot be resolved
+ * @throws IllegalArgumentException if the {@code prefix} cannot be resolved or if the {@code localName} does not
+ * conform to YANG requirements
- // FIXME: 9.0.0: this should really be @NonNull, right? we can also throw if localName is not valid
- protected abstract @Nullable QName createQName(@NonNull String prefix, @NonNull String localName);
+ protected abstract @NonNull QName createQName(@NonNull String prefix, @NonNull String localName);
private static String getIdAndPrefixAsStr(final String pathPart) {
int predicateStartIndex = pathPart.indexOf('[');
private static String getIdAndPrefixAsStr(final String pathPart) {
int predicateStartIndex = pathPart.indexOf('[');
* @param localName Local name string
* @return A newly-created QName
*/
* @param localName Local name string
* @return A newly-created QName
*/
- protected QName createQName(final @Nullable QNameModule lastModule, final String localName) {
+ protected @NonNull QName createQName(final @Nullable QNameModule lastModule, final String localName) {
// This implementation handles both XML encoding, where we follow XML namespace rules and old JSON encoding,
// which is the same thing: always encode prefixes
return createQName(XMLConstants.DEFAULT_NS_PREFIX, localName);
// This implementation handles both XML encoding, where we follow XML namespace rules and old JSON encoding,
// which is the same thing: always encode prefixes
return createQName(XMLConstants.DEFAULT_NS_PREFIX, localName);
*
* @return following QName.
*/
*
* @return following QName.
*/
- private QName nextQName() {
+ private @NonNull QName nextQName() {
// Consume prefix or identifier
final String maybePrefix = nextIdentifier();
if (!allCharactersConsumed() && COLON == currentChar()) {
// Consume prefix or identifier
final String maybePrefix = nextIdentifier();
if (!allCharactersConsumed() && COLON == currentChar()) {