getNextNumber method

double getNextNumber(
  1. WKTTokenizer tokenizer
)

Parses the next number in the stream. Numbers with exponents are handled. NaN values are handled correctly, and the case of the "NaN" symbol is not significant.

@param tokenizer tokenizer over a stream of text in Well-known Text @return the next number in the stream @throws ParseException if the next token is not a valid number @throws IOException if an I/O error occurs

Implementation

double getNextNumber(WKTTokenizer tokenizer) {
  WKTToken token = tokenizer.next()!;
  switch (token.type) {
    case WKTTokenType.KEYWORD:
      {
        if (StringUtils.equalsIgnoreCase(token.value, NAN_SYMBOL)) {
          return double.nan;
        } else {
          try {
            return double.parse(token.value);
          } catch (ex) {
            throw ArgumentError("Invalid number: ${token.value}");
          }
        }
        break;
      }
    case WKTTokenType.NUMERIC_LITERAL:
      {
        try {
          return double.parse(token.value);
        } catch (ex) {
          throw ArgumentError("Invalid number: ${token.value}");
        }
      }
  }
  throw ArgumentError(
      "Expected number token but found ${token.type}: ${token.value}");
}