in johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java [868:910]
private Event handleLiteral() {
//last event must one of the following-> : , [
if (previousEvent != -1 && previousEvent != KEY_SEPARATOR_EVENT && previousEvent != START_ARRAY && previousEvent != COMMA_EVENT) {
throw uexc("Expected : , [");
}
if (previousEvent == COMMA_EVENT && !currentStructureElement.isArray) {
//only allowed within array
throw uexc("Not in an array context");
}
char c = buffer[bufferPos];
// probe literals
switch (c) {
case TRUE_T:
if (readNextChar() != TRUE_R || readNextChar() != TRUE_U || readNextChar() != TRUE_E) {
throw uexc("Expected LITERAL: true");
}
return EVT_MAP[previousEvent = VALUE_TRUE];
case FALSE_F:
if (readNextChar() != FALSE_A || readNextChar() != FALSE_L || readNextChar() != FALSE_S || readNextChar() != FALSE_E) {
throw uexc("Expected LITERAL: false");
}
return EVT_MAP[previousEvent = VALUE_FALSE];
case NULL_N:
if (readNextChar() != NULL_U || readNextChar() != NULL_L || readNextChar() != NULL_L) {
throw uexc("Expected LITERAL: null");
}
return EVT_MAP[previousEvent = VALUE_NULL];
default:
readNumber();
return EVT_MAP[previousEvent = VALUE_NUMBER];
}
}