Package com.google.api.client.util
Class GenericData
- java.lang.Object
-
- java.util.AbstractMap<java.lang.String,java.lang.Object>
-
- com.google.api.client.util.GenericData
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.util.Map<java.lang.String,java.lang.Object>
- Direct Known Subclasses:
GenericJson
,GenericUrl
,GenericXml
,HttpHeaders
,JsonRpcRequest
public class GenericData extends java.util.AbstractMap<java.lang.String,java.lang.Object> implements java.lang.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
GenericData.EntryIterator
Iterator over the object data key/value map entries which iterates first over the fields and then over the unknown keys.(package private) class
GenericData.EntrySet
Set of object data key/value map entries.static class
GenericData.Flags
Flags that impact behavior of generic data.
-
Field Summary
Fields Modifier and Type Field Description (package private) ClassInfo
classInfo
Class information.(package private) java.util.Map<java.lang.String,java.lang.Object>
unknownFields
Map of unknown fields.
-
Constructor Summary
Constructors Constructor Description GenericData()
Constructs with case-insensitive keys.GenericData(java.util.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.java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>>
entrySet()
java.lang.Object
get(java.lang.Object name)
ClassInfo
getClassInfo()
Returns the class information.java.util.Map<java.lang.String,java.lang.Object>
getUnknownKeys()
Returns the map of unknown data key name to value.java.lang.Object
put(java.lang.String fieldName, java.lang.Object value)
void
putAll(java.util.Map<? extends java.lang.String,?> map)
java.lang.Object
remove(java.lang.Object name)
GenericData
set(java.lang.String fieldName, java.lang.Object value)
Sets the given field value (may benull
) for the given field name.void
setUnknownKeys(java.util.Map<java.lang.String,java.lang.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
-
-
-
-
Field Detail
-
unknownFields
java.util.Map<java.lang.String,java.lang.Object> unknownFields
Map of unknown fields.
-
classInfo
final ClassInfo classInfo
Class information.
-
-
Constructor Detail
-
GenericData
public GenericData()
Constructs with case-insensitive keys.
-
GenericData
public GenericData(java.util.EnumSet<GenericData.Flags> flags)
- Parameters:
flags
- flags that impact behavior of generic data- Since:
- 1.10
-
-
Method Detail
-
get
public final java.lang.Object get(java.lang.Object name)
- Specified by:
get
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
get
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
put
public final java.lang.Object put(java.lang.String fieldName, java.lang.Object value)
- Specified by:
put
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
put
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
set
public GenericData set(java.lang.String fieldName, java.lang.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.
-
putAll
public final void putAll(java.util.Map<? extends java.lang.String,?> map)
- Specified by:
putAll
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
putAll
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
remove
public final java.lang.Object remove(java.lang.Object name)
- Specified by:
remove
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Overrides:
remove
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
entrySet
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> entrySet()
- Specified by:
entrySet
in interfacejava.util.Map<java.lang.String,java.lang.Object>
- Specified by:
entrySet
in classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
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 classjava.util.AbstractMap<java.lang.String,java.lang.Object>
-
getUnknownKeys
public final java.util.Map<java.lang.String,java.lang.Object> getUnknownKeys()
Returns the map of unknown data key name to value.- Since:
- 1.5
-
setUnknownKeys
public final void setUnknownKeys(java.util.Map<java.lang.String,java.lang.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
-
-