Package com.google.api.client.util
Class ArrayValueMap
java.lang.Object
com.google.api.client.util.ArrayValueMap
Collects the array values of a key/value data object, writing the fields or map values only after
all values have been collected.
The typical application for this is when parsing JSON or XML when the value type is known to be an array. It stores the values in a collection during the parsing, and only when the parsing of an object is finished does it convert the collection into an array and stores it.
Use put(String, Class, Object)
when the destination object is a map with string keys
and whose values accept an array of objects. Use put(Field, Class, Object)
when setting
the value of a field using reflection, assuming its type accepts an array of objects. One can
potentially use both put
methods for example on an instance of GenericData
.
Implementation is not thread-safe. For a thread-safe choice instead use an implementation of
ConcurrentMap
.
- Since:
- 1.4
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
Array values on a particular field. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Object
Destination object whose fields must be set, or destination map whose values must be set.private final Map
<Field, ArrayValueMap.ArrayValue> Map from field to its array values.private final Map
<String, ArrayValueMap.ArrayValue> Map from key name to its array values. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Puts an additional value for the given field, accumulating values on repeated calls on the same field.void
Puts an additional value for the given key name, accumulating values on repeated calls on the same key name.void
Sets the fields of the given object using the values collected during parsing of the object's fields.
-
Field Details
-
keyMap
Map from key name to its array values. -
fieldMap
Map from field to its array values. -
destination
Destination object whose fields must be set, or destination map whose values must be set.
-
-
Constructor Details
-
ArrayValueMap
- Parameters:
destination
- destination object whose fields must be set, or destination map whose values must be set
-
-
Method Details
-
setValues
public void setValues()Sets the fields of the given object using the values collected during parsing of the object's fields. -
put
Puts an additional value for the given field, accumulating values on repeated calls on the same field.- Parameters:
field
- fieldarrayComponentType
- array component typevalue
- value
-
put
Puts an additional value for the given key name, accumulating values on repeated calls on the same key name.- Parameters:
keyName
- key namearrayComponentType
- array component typevalue
- value
-