AuthorizationToken nextAuthorization()

in src/main/java/org/apache/accumulo/access/Tokenizer.java [113:160]


  AuthorizationToken nextAuthorization(boolean includeQuotes) {
    if (isQuoteSymbol(expression[index])) {
      int start = ++index;

      while (index < expression.length && !isQuoteSymbol(expression[index])) {
        if (isBackslashSymbol(expression[index])) {
          index++;
          if (index == expression.length || !isQuoteOrSlash(expression[index])) {
            error("Invalid escaping within quotes", index - 1);
          }
        }
        index++;
      }

      if (index == expression.length) {
        error("Unclosed quote", start - 1);
      }

      if (start == index) {
        error("Empty authorization token in quotes", start - 1);
      }

      authorizationToken.start = start;
      authorizationToken.len = index - start;

      if (includeQuotes) {
        authorizationToken.start--;
        authorizationToken.len += 2;
      }

      index++;

      return authorizationToken;

    } else if (isValidAuthChar(expression[index])) {
      int start = index;
      while (index < expression.length && isValidAuthChar(expression[index])) {
        index++;
      }
      authorizationToken.start = start;
      authorizationToken.len = index - start;
      return authorizationToken;
    } else {
      error(
          "Expected a '(' character or an authorization token instead saw '" + (char) peek() + "'");
      return null;
    }
  }