- java.lang.Object
-
- org.apache.johnzon.core.JohnzonJsonParserImpl
-
- org.apache.johnzon.core.JsonStreamParserImpl
-
- All Implemented Interfaces:
jakarta.json.stream.JsonParser,java.io.Closeable,java.lang.AutoCloseable,JohnzonJsonParser,JsonChars
- Direct Known Subclasses:
CommentsJsonStreamParserImpl
public class JsonStreamParserImpl extends JohnzonJsonParserImpl implements JsonChars
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJsonStreamParserImpl.Bufferprivate static classJsonStreamParserImpl.StructureElement-
Nested classes/interfaces inherited from interface org.apache.johnzon.core.JohnzonJsonParser
JohnzonJsonParser.JohnzonJsonParserWrapper
-
-
Field Summary
Fields Modifier and Type Field Description private intarrayDepthprivate booleanautoAdjustprivate intavailableCharsInBufferprivate char[]bufferprivate intbufferLeftprivate intbufferPosprivate BufferStrategy.BufferProvider<char[]>bufferProviderprivate booleanclosedprivate intcurrentIntegralNumberprivate longcurrentLineprivate JsonStreamParserImpl.StructureElementcurrentStructureElementprivate intendOfValueInBufferprivate char[]fallBackCopyBufferprivate intfallBackCopyBufferLengthprivate java.io.Readerinprivate booleanisCurrentNumberIntegralprivate longlastLineBreakPositionprivate intmaxValueLengthprivate intobjectDepthprivate longpastBufferReadCountprivate bytepreviousEventprivate java.util.List<JsonStreamParserImpl.Buffer>previousFallBackCopyBuffersprivate booleanreleaseFallBackCopyBufferprivate intstartOfValueInBufferprivate BufferStrategy.BufferProvider<char[]>valueProvider-
Fields inherited from interface org.apache.johnzon.core.JsonChars
BACKSPACE, COMMA_CHAR, COMMA_EVENT, CR, DOT, END_ARRAY, END_ARRAY_CHAR, END_OBJECT, END_OBJECT_CHAR, EOF, EOL, ESCAPE_CHAR, EVT_MAP, EXP_LOWERCASE, EXP_UPPERCASE, FALSE_A, FALSE_E, FALSE_F, FALSE_L, FALSE_S, FORMFEED, KEY_NAME, KEY_SEPARATOR, KEY_SEPARATOR_EVENT, MINUS, NINE, NULL, NULL_L, NULL_N, NULL_U, PLUS, QUOTE_CHAR, SPACE, START_ARRAY, START_ARRAY_CHAR, START_OBJECT, START_OBJECT_CHAR, TAB, TRUE_E, TRUE_R, TRUE_T, TRUE_U, VALUE_FALSE, VALUE_NULL, VALUE_NUMBER, VALUE_STRING, VALUE_TRUE, ZERO
-
-
Constructor Summary
Constructors Modifier Constructor Description JsonStreamParserImpl(java.io.InputStream inputStream, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)privateJsonStreamParserImpl(java.io.InputStream inputStream, java.io.Reader reader, java.nio.charset.Charset encoding, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)JsonStreamParserImpl(java.io.InputStream inputStream, java.nio.charset.Charset encoding, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)JsonStreamParserImpl(java.io.Reader reader, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidappendToCopyBuffer(char c)voidclose()private voidcombinePreviousFallbackBuffersToCurrent()private voidcopyCurrentValue()private jakarta.json.stream.JsonLocationcreateLocation()private voidcreateNewFallBackCopyBuffer()jakarta.json.stream.JsonParser.Eventcurrent()jakarta.json.stream.JsonParser.EventcurrentEvent()private jakarta.json.stream.JsonParsingExceptioncust(java.lang.String message)protected jakarta.json.stream.JsonParser.EventdefaultHandling(char c)java.math.BigDecimalgetBigDecimal()protected BufferStrategy.BufferProvider<char[]>getCharArrayProvider()intgetInt()jakarta.json.stream.JsonLocationgetLocation()longgetLong()java.lang.StringgetString()private jakarta.json.stream.JsonParser.EventhandleEndArray()private jakarta.json.stream.JsonParser.EventhandleEndObject()private jakarta.json.stream.JsonParser.EventhandleLiteral()private jakarta.json.stream.JsonParser.EventhandleQuote()private jakarta.json.stream.JsonParser.EventhandleStartArray()private jakarta.json.stream.JsonParser.EventhandleStartObject()booleanhasNext()protected jakarta.json.stream.JsonParser.EventinternalNext()private static booleanisAsciiDigit(char value)booleanisFitLong()protected booleanisInArray()protected booleanisInObject()booleanisIntegralNumber()booleanisNotTooLong()private intparseHexDigit(char value)private static java.lang.IntegerparseIntegerFromChars(char[] chars, int start, int end)private static java.lang.LongparseLongFromChars(char[] chars, int start, int end)private charparseUnicodeHexChars()protected charreadNextChar()protected charreadNextNonWhitespaceChar(char c)private voidreadNumber()private voidreadString()private voidreleasePreviousFallBackCopyBuffers()private jakarta.json.stream.JsonParsingExceptiontmc()private jakarta.json.stream.JsonParsingExceptionuexc(char c, java.lang.String message)private jakarta.json.stream.JsonParsingExceptionuexc(java.lang.String message)private jakarta.json.stream.JsonParsingExceptionuexio(java.io.IOException e)private voidunreadChar()-
Methods inherited from class org.apache.johnzon.core.JohnzonJsonParserImpl
getArray, getArrayStream, getObject, getObjectStream, getValue, getValueStream, next, skipArray, skipObject
-
-
-
-
Field Detail
-
autoAdjust
private final boolean autoAdjust
-
buffer
private final char[] buffer
-
bufferPos
private int bufferPos
-
bufferLeft
private int bufferLeft
-
availableCharsInBuffer
private int availableCharsInBuffer
-
startOfValueInBuffer
private int startOfValueInBuffer
-
endOfValueInBuffer
private int endOfValueInBuffer
-
in
private final java.io.Reader in
-
bufferProvider
private final BufferStrategy.BufferProvider<char[]> bufferProvider
-
valueProvider
private final BufferStrategy.BufferProvider<char[]> valueProvider
-
maxValueLength
private final int maxValueLength
-
previousEvent
private byte previousEvent
-
fallBackCopyBuffer
private char[] fallBackCopyBuffer
-
releaseFallBackCopyBuffer
private boolean releaseFallBackCopyBuffer
-
fallBackCopyBufferLength
private int fallBackCopyBufferLength
-
previousFallBackCopyBuffers
private java.util.List<JsonStreamParserImpl.Buffer> previousFallBackCopyBuffers
-
currentLine
private long currentLine
-
lastLineBreakPosition
private long lastLineBreakPosition
-
pastBufferReadCount
private long pastBufferReadCount
-
isCurrentNumberIntegral
private boolean isCurrentNumberIntegral
-
currentIntegralNumber
private int currentIntegralNumber
-
currentStructureElement
private JsonStreamParserImpl.StructureElement currentStructureElement
-
arrayDepth
private int arrayDepth
-
objectDepth
private int objectDepth
-
closed
private boolean closed
-
-
Constructor Detail
-
JsonStreamParserImpl
public JsonStreamParserImpl(java.io.InputStream inputStream, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)
-
JsonStreamParserImpl
public JsonStreamParserImpl(java.io.InputStream inputStream, java.nio.charset.Charset encoding, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)
-
JsonStreamParserImpl
public JsonStreamParserImpl(java.io.Reader reader, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)
-
JsonStreamParserImpl
private JsonStreamParserImpl(java.io.InputStream inputStream, java.io.Reader reader, java.nio.charset.Charset encoding, int maxStringLength, BufferStrategy.BufferProvider<char[]> bufferProvider, BufferStrategy.BufferProvider<char[]> valueBuffer, boolean autoAdjust, JsonProviderImpl provider)
-
-
Method Detail
-
appendToCopyBuffer
private void appendToCopyBuffer(char c)
-
copyCurrentValue
private void copyCurrentValue()
-
createNewFallBackCopyBuffer
private void createNewFallBackCopyBuffer()
-
releasePreviousFallBackCopyBuffers
private void releasePreviousFallBackCopyBuffers()
-
hasNext
public final boolean hasNext()
- Specified by:
hasNextin interfacejakarta.json.stream.JsonParser
-
isAsciiDigit
private static boolean isAsciiDigit(char value)
-
parseHexDigit
private int parseHexDigit(char value)
-
createLocation
private jakarta.json.stream.JsonLocation createLocation()
-
readNextChar
protected final char readNextChar()
-
readNextNonWhitespaceChar
protected final char readNextNonWhitespaceChar(char c)
-
currentEvent
public jakarta.json.stream.JsonParser.Event currentEvent()
- Specified by:
currentEventin interfacejakarta.json.stream.JsonParser
-
current
public jakarta.json.stream.JsonParser.Event current()
- Specified by:
currentin interfaceJohnzonJsonParser- Returns:
- the _current_ Event. That's the one returned by the previous call to
JsonParser.next()but without propagating the Event pointer to the next entry.
-
unreadChar
private void unreadChar()
-
internalNext
protected final jakarta.json.stream.JsonParser.Event internalNext()
- Specified by:
internalNextin classJohnzonJsonParserImpl
-
defaultHandling
protected jakarta.json.stream.JsonParser.Event defaultHandling(char c)
-
handleStartObject
private jakarta.json.stream.JsonParser.Event handleStartObject()
-
handleEndObject
private jakarta.json.stream.JsonParser.Event handleEndObject()
-
handleStartArray
private jakarta.json.stream.JsonParser.Event handleStartArray()
-
handleEndArray
private jakarta.json.stream.JsonParser.Event handleEndArray()
-
isInArray
protected boolean isInArray()
- Specified by:
isInArrayin classJohnzonJsonParserImpl- Returns:
trueif we are currently inside an array
-
isInObject
protected boolean isInObject()
- Specified by:
isInObjectin classJohnzonJsonParserImpl- Returns:
trueif we are currently inside an object
-
getCharArrayProvider
protected BufferStrategy.BufferProvider<char[]> getCharArrayProvider()
- Specified by:
getCharArrayProviderin classJohnzonJsonParserImpl
-
readString
private void readString()
-
parseUnicodeHexChars
private char parseUnicodeHexChars()
-
handleQuote
private jakarta.json.stream.JsonParser.Event handleQuote()
-
readNumber
private void readNumber()
-
handleLiteral
private jakarta.json.stream.JsonParser.Event handleLiteral()
-
getString
public java.lang.String getString()
- Specified by:
getStringin interfacejakarta.json.stream.JsonParser
-
combinePreviousFallbackBuffersToCurrent
private void combinePreviousFallbackBuffersToCurrent()
-
isIntegralNumber
public boolean isIntegralNumber()
- Specified by:
isIntegralNumberin interfacejakarta.json.stream.JsonParser
-
isNotTooLong
public boolean isNotTooLong()
- Specified by:
isNotTooLongin interfaceJohnzonJsonParser
-
getInt
public int getInt()
- Specified by:
getIntin interfacejakarta.json.stream.JsonParser
-
getLong
public long getLong()
- Specified by:
getLongin interfacejakarta.json.stream.JsonParser
-
isFitLong
public boolean isFitLong()
- Specified by:
isFitLongin interfaceJohnzonJsonParser
-
getBigDecimal
public java.math.BigDecimal getBigDecimal()
- Specified by:
getBigDecimalin interfacejakarta.json.stream.JsonParser
-
getLocation
public jakarta.json.stream.JsonLocation getLocation()
- Specified by:
getLocationin interfacejakarta.json.stream.JsonParser
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfacejakarta.json.stream.JsonParser
-
parseLongFromChars
private static java.lang.Long parseLongFromChars(char[] chars, int start, int end)
-
parseIntegerFromChars
private static java.lang.Integer parseIntegerFromChars(char[] chars, int start, int end)
-
uexc
private jakarta.json.stream.JsonParsingException uexc(char c, java.lang.String message)
-
uexc
private jakarta.json.stream.JsonParsingException uexc(java.lang.String message)
-
tmc
private jakarta.json.stream.JsonParsingException tmc()
-
uexio
private jakarta.json.stream.JsonParsingException uexio(java.io.IOException e)
-
cust
private jakarta.json.stream.JsonParsingException cust(java.lang.String message)
-
-