Package com.google.api.client.util
Class GenericData
- java.lang.Object
-
- java.util.AbstractMap<String,Object>
-
- com.google.api.client.util.GenericData
-
- Direct Known Subclasses:
GenericJson
,GenericUrl
,GenericXml
,HttpHeaders
,JsonRpcRequest
public class GenericData extends AbstractMap<String,Object> implements Cloneable
Generic data that stores all unknown data key name/value pairs.Subclasses can declare fields for known data keys using the
Key
annotation. Each field can be of any visibility (private, package private, protected, or public) and must not be static.null
unknown data key names are not allowed, butnull
data values are allowed.Iteration order of the data keys is based on the sorted (ascending) key names of the declared fields, followed by the iteration order of all of the unknown data key name/value pairs.
Implementation is not thread-safe. For a thread-safe choice instead use an implementation of
ConcurrentMap
.- Since:
- 1.0
- Author:
- Yaniv Inbar
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GenericData.Flags
Flags that impact behavior of generic data.-
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>
-
-
Constructor Summary
Constructors Constructor Description GenericData()
Constructs with case-insensitive keys.GenericData(EnumSet<GenericData.Flags> flags)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GenericData
clone()
Makes a "deep" clone of the generic data, in which the clone is completely independent of the original.Set<Map.Entry<String,Object>>
entrySet()
Object
get(Object name)
ClassInfo
getClassInfo()
Returns the class information.Map<String,Object>
getUnknownKeys()
Returns the map of unknown data key name to value.Object
put(String fieldName, Object value)
void
putAll(Map<? extends String,?> map)
Object
remove(Object name)
GenericData
set(String fieldName, Object value)
Sets the given field value (may benull
) for the given field name.void
setUnknownKeys(Map<String,Object> unknownFields)
Sets the map of unknown data key name to value.-
Methods inherited from class java.util.AbstractMap
clear, containsKey, containsValue, equals, hashCode, isEmpty, keySet, size, toString, values
-
-
-
-
Constructor Detail
-
GenericData
public GenericData()
Constructs with case-insensitive keys.
-
GenericData
public GenericData(EnumSet<GenericData.Flags> flags)
- Parameters:
flags
- flags that impact behavior of generic data- Since:
- 1.10
-
-
Method Detail
-
set
public GenericData set(String fieldName, Object value)
Sets the given field value (may benull
) for the given field name. Any existing value for the field will be overwritten. It may be more slightly more efficient thanput(String, Object)
because it avoids accessing the field's original value.Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
-
clone
public GenericData clone()
Makes a "deep" clone of the generic data, in which the clone is completely independent of the original.- Overrides:
clone
in classAbstractMap<String,Object>
-
getUnknownKeys
public final Map<String,Object> getUnknownKeys()
Returns the map of unknown data key name to value.- Since:
- 1.5
-
setUnknownKeys
public final void setUnknownKeys(Map<String,Object> unknownFields)
Sets the map of unknown data key name to value.- Since:
- 1.5
-
getClassInfo
public final ClassInfo getClassInfo()
Returns the class information.- Since:
- 1.10
-
-