Class JsonGeneratorImpl
java.lang.Object
org.glassfish.json.JsonGeneratorImpl
- All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, JsonGenerator
- Direct Known Subclasses:
JsonPrettyGeneratorImpl
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static enum -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final char[]private final BufferPoolprivate JsonGeneratorImpl.Contextprivate static final char[]private static final char[]private static final char[]All possible chars for representing a number as a Stringprivate static final int[]private static final char[]private intprivate final Deque<JsonGeneratorImpl.Context> private final WriterFields inherited from interface JsonGenerator
PRETTY_PRINTING -
Constructor Summary
ConstructorsConstructorDescriptionJsonGeneratorImpl(OutputStream out, Charset encoding, BufferPool bufferPool) JsonGeneratorImpl(OutputStream out, BufferPool bufferPool) JsonGeneratorImpl(Writer writer, BufferPool bufferPool) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidvoidclose()Closes this generator and frees any resources associated with it.private static voidfillIntChars(int i, char[] buf, int index) Places characters representing the integer i into the character array buf.voidflush()Flushes the underlying output source.(package private) void(package private) booleanprivate voidprivate static intstringSize(int x) write(boolean value) Writes a JSON true or false value within the current array, field or root context.write(double value) Writes the specified value as a JSON number value within the current array, field or root context.write(int value) Writes the specified value as a JSON number value within the current array, field or root context.write(long value) Writes the specified value as a JSON number value within the current array, field or root context.Writes the specified value as a JSON string value within the current array, field or root context.Writes a JSON name/boolean value pair in the current object context.Writes a JSON name/number value pair in the current object context.Writes a JSON name/number value pair in the current object context.Writes a JSON name/number value pair in the current object context.Writes a JSON name/string value pair in the current object context.write(String name, BigDecimal value) Writes a JSON name/number value pair in the current object context.write(String name, BigInteger value) Writes a JSON name/number value pair in the current object context.Writes a JSON name/value pair in the current object context.write(BigDecimal value) Writes the specified value as a JSON number value within the current array, field or root context.write(BigInteger value) Writes the specified value as a JSON number value within the current array, field or root context.Writes the specified value as a JSON value within the current array, field or root context.(package private) voidwriteChar(char c) protected voidprotected voidwriteEnd()Writes the end of the current context.(package private) voidwriteEscapedString(String string) (package private) voidwriteInt(int num) Writes the JSON name with a colon.private JsonGeneratorWrites a JSON null value within the current array, field or root context.Writes a JSON name/null value pair in an current object context.Writes the JSON start array character.writeStartArray(String name) Writes the JSON name/start array character pair with in the current object context.Writes the JSON start object character.writeStartObject(String name) Writes the JSON name/start object character pair in the current object context.(package private) voidwriteString(String str) (package private) voidwriteString(String str, int begin, int end) private voidwriteValue(String value) private voidwriteValue(String name, String value)
-
Field Details
-
INT_MIN_VALUE_CHARS
private static final char[] INT_MIN_VALUE_CHARS -
INT_CHARS_SIZE_TABLE
private static final int[] INT_CHARS_SIZE_TABLE -
DIGIT_TENS
private static final char[] DIGIT_TENS -
DIGIT_ONES
private static final char[] DIGIT_ONES -
DIGITS
private static final char[] DIGITSAll possible chars for representing a number as a String -
bufferPool
-
writer
-
currentContext
-
stack
-
buf
private final char[] buf -
len
private int len
-
-
Constructor Details
-
JsonGeneratorImpl
JsonGeneratorImpl(Writer writer, BufferPool bufferPool) -
JsonGeneratorImpl
JsonGeneratorImpl(OutputStream out, BufferPool bufferPool) -
JsonGeneratorImpl
JsonGeneratorImpl(OutputStream out, Charset encoding, BufferPool bufferPool)
-
-
Method Details
-
flush
public void flush()Description copied from interface:JsonGeneratorFlushes the underlying output source. If the generator has saved any characters in a buffer, writes them immediately to the underlying output source before flushing it.- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceJsonGenerator
-
writeStartObject
Description copied from interface:JsonGeneratorWrites the JSON start object character. It starts a new child object context within which JSON name/value pairs can be written to the object. This method is valid only in an array context, field context or in no context (when a context is not yet started). This method can only be called once in no context.- Specified by:
writeStartObjectin interfaceJsonGenerator- Returns:
- this generator
-
writeStartObject
Description copied from interface:JsonGeneratorWrites the JSON name/start object character pair in the current object context. It starts a new child object context within which JSON name/value pairs can be written to the object.- Specified by:
writeStartObjectin interfaceJsonGenerator- Parameters:
name- a name within the JSON name/object pair to be written- Returns:
- this generator
-
writeName
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/string value pair in the current object context. The specified value is written as JSON string value.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/string pair to be written in current JSON objectfieldValue- a value in the JSON name/string pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/number value pair in the current object context. The specified value is written as a JSON number value. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/number pair to be written in current JSON objectvalue- a value in the JSON name/number pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/number value pair in the current object context. The specified value is written as a JSON number value. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/number pair to be written in current JSON objectvalue- a value in the JSON name/number pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/number value pair in the current object context. The specified value is written as a JSON number value. The stringBigDecimal.valueOf(double).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/number pair to be written in current JSON objectvalue- a value in the JSON name/number pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/number value pair in the current object context. The specified value is written as a JSON number value. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/number pair to be written in current JSON objectvalue- a value in the JSON name/number pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/number value pair in the current object context. The specified value is written as a JSON number value. The specified value'stoString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/number pair to be written in current JSON objectvalue- a value in the JSON name/number pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/boolean value pair in the current object context. If value is true, it writes the JSONtruevalue, otherwise it writes the JSONfalsevalue.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/boolean pair to be written in current JSON objectvalue- a value in the JSON name/boolean pair to be written in current JSON object- Returns:
- this generator
-
writeNull
Description copied from interface:JsonGeneratorWrites a JSON name/null value pair in an current object context.- Specified by:
writeNullin interfaceJsonGenerator- Parameters:
name- a name in the JSON name/null pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON value within the current array, field or root context.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
-
writeStartArray
Description copied from interface:JsonGeneratorWrites the JSON start array character. It starts a new child array context within which JSON values can be written to the array. This method is valid only in an array context, field context or in no context (when a context is not yet started). This method can only be called once in no context.- Specified by:
writeStartArrayin interfaceJsonGenerator- Returns:
- this generator
-
writeStartArray
Description copied from interface:JsonGeneratorWrites the JSON name/start array character pair with in the current object context. It starts a new child array context within which JSON values can be written to the array.- Specified by:
writeStartArrayin interfaceJsonGenerator- Parameters:
name- a name within the JSON name/array pair to be written- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites a JSON name/value pair in the current object context.- Specified by:
writein interfaceJsonGenerator- Parameters:
name- a name in the JSON name/value pair to be written in current JSON objectvalue- a value in the JSON name/value pair to be written in current JSON object- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON string value within the current array, field or root context.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON number value within the current array, field or root context. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON number value within the current array, field or root context. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON number value within the current array, field or root context. The stringBigDecimal.valueOf(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
-
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON number value within the current array, field or root context. The stringnew BigDecimal(value).toString()is used as the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator.
- See Also:
-
checkContextForValue
private void checkContextForValue() -
write
Description copied from interface:JsonGeneratorWrites the specified value as a JSON number value within the current array, field or root context. The specified value'stoString()is used as the the text value for writing.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- a value to be written in current JSON array- Returns:
- this generator
- See Also:
-
popFieldContext
private void popFieldContext() -
write
Description copied from interface:JsonGeneratorWrites a JSON true or false value within the current array, field or root context. If value is true, this method writes the JSONtruevalue, otherwise it writes the JSONfalsevalue.- Specified by:
writein interfaceJsonGenerator- Parameters:
value- abooleanvalue- Returns:
- this generator
-
writeNull
Description copied from interface:JsonGeneratorWrites a JSON null value within the current array, field or root context.- Specified by:
writeNullin interfaceJsonGenerator- Returns:
- this generator
-
writeValue
-
writeValue
-
writeKey
Description copied from interface:JsonGeneratorWrites the JSON name with a colon. It starts a field context, in which valid options are writing a value, starting an object or an array. Writing value closes field context, if object or array is started after field name, field context will be closed after object/array close.- Specified by:
writeKeyin interfaceJsonGenerator- Parameters:
name- name of json field- Returns:
- this generator
-
writeEnd
Description copied from interface:JsonGeneratorWrites the end of the current context. If the current context is an array context, this method writes the end-of-array character (']'). If the current context is an object context, this method writes the end-of-object character ('}'). After writing the end of the current context, the parent context becomes the new current context. If parent context is field context, it is closed.- Specified by:
writeEndin interfaceJsonGenerator- Returns:
- this generator
-
writeComma
protected void writeComma() -
isCommaAllowed
boolean isCommaAllowed() -
writeColon
protected void writeColon() -
close
public void close()Description copied from interface:JsonGeneratorCloses this generator and frees any resources associated with it. This method closes the underlying output source.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceJsonGenerator
-
writeEscapedString
-
writeString
-
writeString
-
writeChar
void writeChar(char c) -
writeInt
void writeInt(int num) -
flushBuffer
void flushBuffer() -
stringSize
private static int stringSize(int x) -
fillIntChars
private static void fillIntChars(int i, char[] buf, int index) Places characters representing the integer i into the character array buf. The characters are placed into the buffer backwards starting with the least significant digit at the specified index (exclusive), and working backwards from there. Will fail if i == Integer.MIN_VALUE
-