Package org.glassfish.json
Class JsonGeneratorImpl
- java.lang.Object
-
- org.glassfish.json.JsonGeneratorImpl
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
,JsonGenerator
- Direct Known Subclasses:
JsonPrettyGeneratorImpl
class JsonGeneratorImpl extends java.lang.Object implements JsonGenerator
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JsonGeneratorImpl.Context
private static class
JsonGeneratorImpl.Scope
-
Field Summary
Fields Modifier and Type Field Description private char[]
buf
private BufferPool
bufferPool
private JsonGeneratorImpl.Context
currentContext
private static char[]
DIGIT_ONES
private static char[]
DIGIT_TENS
private static char[]
DIGITS
All possible chars for representing a number as a Stringprivate static int[]
INT_CHARS_SIZE_TABLE
private static char[]
INT_MIN_VALUE_CHARS
private int
len
private java.util.Deque<JsonGeneratorImpl.Context>
stack
private java.io.Writer
writer
-
Fields inherited from interface javax.json.stream.JsonGenerator
PRETTY_PRINTING
-
-
Constructor Summary
Constructors Constructor Description JsonGeneratorImpl(java.io.OutputStream out, java.nio.charset.Charset encoding, BufferPool bufferPool)
JsonGeneratorImpl(java.io.OutputStream out, BufferPool bufferPool)
JsonGeneratorImpl(java.io.Writer writer, BufferPool bufferPool)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkContextForValue()
void
close()
Closes this generator and frees any resources associated with it.private static void
fillIntChars(int i, char[] buf, int index)
Places characters representing the integer i into the character array buf.void
flush()
Flushes the underlying output source.(package private) void
flushBuffer()
(package private) boolean
isCommaAllowed()
private void
popFieldContext()
private static int
stringSize(int x)
JsonGenerator
write(boolean value)
Writes a JSON true or false value within the current array, field or root context.JsonGenerator
write(double value)
Writes the specified value as a JSON number value within the current array, field or root context.JsonGenerator
write(int value)
Writes the specified value as a JSON number value within the current array, field or root context.JsonGenerator
write(long value)
Writes the specified value as a JSON number value within the current array, field or root context.JsonGenerator
write(java.lang.String value)
Writes the specified value as a JSON string value within the current array, field or root context.JsonGenerator
write(java.lang.String name, boolean value)
Writes a JSON name/boolean value pair in the current object context.JsonGenerator
write(java.lang.String name, double value)
Writes a JSON name/number value pair in the current object context.JsonGenerator
write(java.lang.String name, int value)
Writes a JSON name/number value pair in the current object context.JsonGenerator
write(java.lang.String name, long value)
Writes a JSON name/number value pair in the current object context.JsonGenerator
write(java.lang.String name, java.lang.String fieldValue)
Writes a JSON name/string value pair in the current object context.JsonGenerator
write(java.lang.String name, java.math.BigDecimal value)
Writes a JSON name/number value pair in the current object context.JsonGenerator
write(java.lang.String name, java.math.BigInteger value)
Writes a JSON name/number value pair in the current object context.JsonGenerator
write(java.lang.String name, JsonValue value)
Writes a JSON name/value pair in the current object context.JsonGenerator
write(java.math.BigDecimal value)
Writes the specified value as a JSON number value within the current array, field or root context.JsonGenerator
write(java.math.BigInteger value)
Writes the specified value as a JSON number value within the current array, field or root context.JsonGenerator
write(JsonValue value)
Writes the specified value as a JSON value within the current array, field or root context.(package private) void
writeChar(char c)
protected void
writeColon()
protected void
writeComma()
JsonGenerator
writeEnd()
Writes the end of the current context.(package private) void
writeEscapedString(java.lang.String string)
(package private) void
writeInt(int num)
JsonGenerator
writeKey(java.lang.String name)
Writes the JSON name with a colon.private JsonGenerator
writeName(java.lang.String name)
JsonGenerator
writeNull()
Writes a JSON null value within the current array, field or root context.JsonGenerator
writeNull(java.lang.String name)
Writes a JSON name/null value pair in an current object context.JsonGenerator
writeStartArray()
Writes the JSON start array character.JsonGenerator
writeStartArray(java.lang.String name)
Writes the JSON name/start array character pair with in the current object context.JsonGenerator
writeStartObject()
Writes the JSON start object character.JsonGenerator
writeStartObject(java.lang.String name)
Writes the JSON name/start object character pair in the current object context.(package private) void
writeString(java.lang.String str)
(package private) void
writeString(java.lang.String str, int begin, int end)
private void
writeValue(java.lang.String value)
private void
writeValue(java.lang.String name, java.lang.String value)
-
-
-
Field Detail
-
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[] DIGITS
All possible chars for representing a number as a String
-
bufferPool
private final BufferPool bufferPool
-
writer
private final java.io.Writer writer
-
currentContext
private JsonGeneratorImpl.Context currentContext
-
stack
private final java.util.Deque<JsonGeneratorImpl.Context> stack
-
buf
private final char[] buf
-
len
private int len
-
-
Constructor Detail
-
JsonGeneratorImpl
JsonGeneratorImpl(java.io.Writer writer, BufferPool bufferPool)
-
JsonGeneratorImpl
JsonGeneratorImpl(java.io.OutputStream out, BufferPool bufferPool)
-
JsonGeneratorImpl
JsonGeneratorImpl(java.io.OutputStream out, java.nio.charset.Charset encoding, BufferPool bufferPool)
-
-
Method Detail
-
flush
public void flush()
Description copied from interface:JsonGenerator
Flushes 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:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in interfaceJsonGenerator
-
writeStartObject
public JsonGenerator writeStartObject()
Description copied from interface:JsonGenerator
Writes 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:
writeStartObject
in interfaceJsonGenerator
- Returns:
- this generator
-
writeStartObject
public JsonGenerator writeStartObject(java.lang.String name)
Description copied from interface:JsonGenerator
Writes 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:
writeStartObject
in interfaceJsonGenerator
- Parameters:
name
- a name within the JSON name/object pair to be written- Returns:
- this generator
-
writeName
private JsonGenerator writeName(java.lang.String name)
-
write
public JsonGenerator write(java.lang.String name, java.lang.String fieldValue)
Description copied from interface:JsonGenerator
Writes a JSON name/string value pair in the current object context. The specified value is written as JSON string value.- Specified by:
write
in 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
public JsonGenerator write(java.lang.String name, int value)
Description copied from interface:JsonGenerator
Writes 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:
write
in 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
public JsonGenerator write(java.lang.String name, long value)
Description copied from interface:JsonGenerator
Writes 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:
write
in 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
public JsonGenerator write(java.lang.String name, double value)
Description copied from interface:JsonGenerator
Writes 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:
write
in 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
public JsonGenerator write(java.lang.String name, java.math.BigInteger value)
Description copied from interface:JsonGenerator
Writes 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:
write
in 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
public JsonGenerator write(java.lang.String name, java.math.BigDecimal value)
Description copied from interface:JsonGenerator
Writes 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:
write
in 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
public JsonGenerator write(java.lang.String name, boolean value)
Description copied from interface:JsonGenerator
Writes a JSON name/boolean value pair in the current object context. If value is true, it writes the JSONtrue
value, otherwise it writes the JSONfalse
value.- Specified by:
write
in 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
public JsonGenerator writeNull(java.lang.String name)
Description copied from interface:JsonGenerator
Writes a JSON name/null value pair in an current object context.- Specified by:
writeNull
in interfaceJsonGenerator
- Parameters:
name
- a name in the JSON name/null pair to be written in current JSON object- Returns:
- this generator
-
write
public JsonGenerator write(JsonValue value)
Description copied from interface:JsonGenerator
Writes the specified value as a JSON value within the current array, field or root context.- Specified by:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
-
writeStartArray
public JsonGenerator writeStartArray()
Description copied from interface:JsonGenerator
Writes 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:
writeStartArray
in interfaceJsonGenerator
- Returns:
- this generator
-
writeStartArray
public JsonGenerator writeStartArray(java.lang.String name)
Description copied from interface:JsonGenerator
Writes 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:
writeStartArray
in interfaceJsonGenerator
- Parameters:
name
- a name within the JSON name/array pair to be written- Returns:
- this generator
-
write
public JsonGenerator write(java.lang.String name, JsonValue value)
Description copied from interface:JsonGenerator
Writes a JSON name/value pair in the current object context.- Specified by:
write
in 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
public JsonGenerator write(java.lang.String value)
Description copied from interface:JsonGenerator
Writes the specified value as a JSON string value within the current array, field or root context.- Specified by:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
-
write
public JsonGenerator write(int value)
Description copied from interface:JsonGenerator
Writes 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:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
-
write
public JsonGenerator write(long value)
Description copied from interface:JsonGenerator
Writes 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:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
-
write
public JsonGenerator write(double value)
Description copied from interface:JsonGenerator
Writes 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:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
-
write
public JsonGenerator write(java.math.BigInteger value)
Description copied from interface:JsonGenerator
Writes 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:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator.
- See Also:
JsonNumber
-
checkContextForValue
private void checkContextForValue()
-
write
public JsonGenerator write(java.math.BigDecimal value)
Description copied from interface:JsonGenerator
Writes 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:
write
in interfaceJsonGenerator
- Parameters:
value
- a value to be written in current JSON array- Returns:
- this generator
- See Also:
JsonNumber
-
popFieldContext
private void popFieldContext()
-
write
public JsonGenerator write(boolean value)
Description copied from interface:JsonGenerator
Writes a JSON true or false value within the current array, field or root context. If value is true, this method writes the JSONtrue
value, otherwise it writes the JSONfalse
value.- Specified by:
write
in interfaceJsonGenerator
- Parameters:
value
- aboolean
value- Returns:
- this generator
-
writeNull
public JsonGenerator writeNull()
Description copied from interface:JsonGenerator
Writes a JSON null value within the current array, field or root context.- Specified by:
writeNull
in interfaceJsonGenerator
- Returns:
- this generator
-
writeValue
private void writeValue(java.lang.String value)
-
writeValue
private void writeValue(java.lang.String name, java.lang.String value)
-
writeKey
public JsonGenerator writeKey(java.lang.String name)
Description copied from interface:JsonGenerator
Writes 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:
writeKey
in interfaceJsonGenerator
- Parameters:
name
- name of json field- Returns:
- this generator
-
writeEnd
public JsonGenerator writeEnd()
Description copied from interface:JsonGenerator
Writes 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:
writeEnd
in interfaceJsonGenerator
- Returns:
- this generator
-
writeComma
protected void writeComma()
-
isCommaAllowed
boolean isCommaAllowed()
-
writeColon
protected void writeColon()
-
close
public void close()
Description copied from interface:JsonGenerator
Closes this generator and frees any resources associated with it. This method closes the underlying output source.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceJsonGenerator
-
writeEscapedString
void writeEscapedString(java.lang.String string)
-
writeString
void writeString(java.lang.String str, int begin, int end)
-
writeString
void writeString(java.lang.String str)
-
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
-
-