Package org.glassfish.json
Class JsonStructureParser
- java.lang.Object
-
- org.glassfish.json.JsonStructureParser
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,JsonParser
class JsonStructureParser extends java.lang.Object implements JsonParser
JsonParser
implementation on top of JsonArray/JsonObject
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JsonStructureParser.ArrayScope
private static class
JsonStructureParser.ObjectScope
private static class
JsonStructureParser.Scope
-
Nested classes/interfaces inherited from interface javax.json.stream.JsonParser
JsonParser.Event
-
-
Field Summary
Fields Modifier and Type Field Description private JsonStructureParser.Scope
current
private java.util.Deque<JsonStructureParser.Scope>
scopeStack
private JsonParser.Event
state
-
Constructor Summary
Constructors Constructor Description JsonStructureParser(JsonArray array)
JsonStructureParser(JsonObject object)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this parser and frees any resources associated with the parser.java.math.BigDecimal
getBigDecimal()
Returns a JSON number as aBigDecimal
.int
getInt()
Returns a JSON number as an integer.JsonLocation
getLocation()
Return the location that corresponds to the parser's current state in the JSON input source.long
getLong()
Returns a JSON number as a long.private static JsonParser.Event
getState(JsonValue value)
java.lang.String
getString()
Returns aString
for the name in a name/value pair, for a string value or a number value.boolean
hasNext()
Returnstrue
if there are more parsing states.boolean
isIntegralNumber()
Returns true if the JSON number at the current parser state is a integral number.JsonParser.Event
next()
Returns the event for the next parsing state.private void
transition()
-
-
-
Field Detail
-
current
private JsonStructureParser.Scope current
-
state
private JsonParser.Event state
-
scopeStack
private final java.util.Deque<JsonStructureParser.Scope> scopeStack
-
-
Constructor Detail
-
JsonStructureParser
JsonStructureParser(JsonArray array)
-
JsonStructureParser
JsonStructureParser(JsonObject object)
-
-
Method Detail
-
getString
public java.lang.String getString()
Description copied from interface:JsonParser
Returns aString
for the name in a name/value pair, for a string value or a number value. This method should only be called when the parser state isJsonParser.Event.KEY_NAME
,JsonParser.Event.VALUE_STRING
, orJsonParser.Event.VALUE_NUMBER
.- Specified by:
getString
in interfaceJsonParser
- Returns:
- a name when the parser state is
JsonParser.Event.KEY_NAME
a string value when the parser state isJsonParser.Event.VALUE_STRING
a number value when the parser state isJsonParser.Event.VALUE_NUMBER
-
isIntegralNumber
public boolean isIntegralNumber()
Description copied from interface:JsonParser
Returns true if the JSON number at the current parser state is a integral number. ABigDecimal
may be used to store the value internally and this method semantics are defined using itsscale()
. If the scale is zero, then it is considered integral type. This integral type information can be used to invoke an appropriate accessor method to obtain a numeric value as in the following example:JsonParser parser = ... if (parser.isIntegralNumber()) { parser.getInt(); // or other methods to get integral value } else { parser.getBigDecimal(); }
- Specified by:
isIntegralNumber
in interfaceJsonParser
- Returns:
- true if this number is a integral number, otherwise false
-
getInt
public int getInt()
Description copied from interface:JsonParser
Returns a JSON number as an integer. The returned value is equal tonew BigDecimal(getString()).intValue()
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign. This method should only be called when the parser state isJsonParser.Event.VALUE_NUMBER
.- Specified by:
getInt
in interfaceJsonParser
- Returns:
- an integer for a JSON number
- See Also:
BigDecimal.intValue()
-
getLong
public long getLong()
Description copied from interface:JsonParser
Returns a JSON number as a long. The returned value is equal tonew BigDecimal(getString()).longValue()
. Note that this conversion can lose information about the overall magnitude and precision of the number value as well as return a result with the opposite sign. This method is only called when the parser state isJsonParser.Event.VALUE_NUMBER
.- Specified by:
getLong
in interfaceJsonParser
- Returns:
- a long for a JSON number
- See Also:
BigDecimal.longValue()
-
getBigDecimal
public java.math.BigDecimal getBigDecimal()
Description copied from interface:JsonParser
Returns a JSON number as aBigDecimal
. TheBigDecimal
is created usingnew BigDecimal(getString())
. This method should only called when the parser state isJsonParser.Event.VALUE_NUMBER
.- Specified by:
getBigDecimal
in interfaceJsonParser
- Returns:
- a
BigDecimal
for a JSON number
-
getLocation
public JsonLocation getLocation()
Description copied from interface:JsonParser
Return the location that corresponds to the parser's current state in the JSON input source. The location information is only valid in the current parser state (or until the parser is advanced to a next state).- Specified by:
getLocation
in interfaceJsonParser
- Returns:
- a non-null location corresponding to the current parser state in JSON input source
-
hasNext
public boolean hasNext()
Description copied from interface:JsonParser
Returnstrue
if there are more parsing states. This method returnsfalse
if the parser reaches the end of the JSON text.- Specified by:
hasNext
in interfaceJsonParser
- Returns:
true
if there are more parsing states.
-
next
public JsonParser.Event next()
Description copied from interface:JsonParser
Returns the event for the next parsing state.- Specified by:
next
in interfaceJsonParser
-
transition
private void transition()
-
close
public void close()
Description copied from interface:JsonParser
Closes this parser and frees any resources associated with the parser. This method closes the underlying input source.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceJsonParser
-
getState
private static JsonParser.Event getState(JsonValue value)
-
-