Skip to content

Commit

Permalink
provide NaN and Infinity when (de)serializing Java Numbers
Browse files Browse the repository at this point in the history
Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
  • Loading branch information
jbescos committed Oct 19, 2021
1 parent 3c3b1b1 commit 5c70fb1
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 8 deletions.
21 changes: 21 additions & 0 deletions api/src/main/java/jakarta/json/JsonConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,27 @@
*/
public final class JsonConfig {

/**
* Configuration property to generate JSON prettily. All providers
* must support this property. The value of the property could be
* be anything.
*/
String PRETTY_PRINTING = "jakarta.json.stream.JsonGenerator.prettyPrinting" ;

/**
* Configuration property to generate NaN, +Infinity and -Infinity as nulls.
*
* @since 2.1
*/
String WRITE_NAN_AS_NULLS = "jakarta.json.stream.JsonGenerator.writeNanAsNulls";

/**
* Configuration property to generate NaN, +Infinity and -Infinity as Strings.
*
* @since 2.1
*/
String WRITE_NAN_AS_STRINGS = "jakarta.json.stream.JsonGenerator.writeNanAsStrings";

/**
* Configuration property to define the strategy for handling duplicate keys.
*
Expand Down
14 changes: 6 additions & 8 deletions api/src/main/java/jakarta/json/stream/JsonGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,12 +138,6 @@
* @see JsonGeneratorFactory
*/
public interface JsonGenerator extends Flushable, /*Auto*/Closeable {
/**
* Configuration property to generate JSON prettily. All providers
* must support this property. The value of the property could be
* be anything.
*/
String PRETTY_PRINTING = "jakarta.json.stream.JsonGenerator.prettyPrinting" ;

/**
* Writes the JSON start object character. It starts a new child object
Expand Down Expand Up @@ -336,7 +330,9 @@ public interface JsonGenerator extends Flushable, /*Auto*/Closeable {
* @return this generator
* @throws jakarta.json.JsonException if an i/o error occurs (IOException
* would be cause of JsonException)
* @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity.
* @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity
* when {@link jakarta.json.JsonConfig#WRITE_NAN_AS_NULLS} and/or
* {@link jakarta.json.JsonConfig#WRITE_NAN_AS_STRINGS} is not set.
* @throws JsonGenerationException if this method is not called within an
* object context
*/
Expand Down Expand Up @@ -485,7 +481,9 @@ public interface JsonGenerator extends Flushable, /*Auto*/Closeable {
* would be cause of JsonException)
* @throws JsonGenerationException if this method is not called within an
* array or root context.
* @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity.
* @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity
* when {@link jakarta.json.JsonConfig#WRITE_NAN_AS_NULLS} and/or
* {@link jakarta.json.JsonConfig#WRITE_NAN_AS_STRINGS} is not set.
*/
JsonGenerator write(double value);

Expand Down

0 comments on commit 5c70fb1

Please sign in to comment.