public class GenericData
extends java.util.AbstractMap<java.lang.String,java.lang.Object>
implements java.lang.Cloneable
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, but null
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
.
Modifier and Type | Class and Description |
---|---|
static class |
GenericData.Flags
Flags that impact behavior of generic data.
|
Constructor and Description |
---|
GenericData()
Constructs with case-insensitive keys.
|
GenericData(java.util.EnumSet<GenericData.Flags> flags) |
Modifier and Type | Method and 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 be
null ) 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.
|
public GenericData()
public GenericData(java.util.EnumSet<GenericData.Flags> flags)
flags
- flags that impact behavior of generic datapublic final java.lang.Object get(java.lang.Object name)
get
in interface java.util.Map<java.lang.String,java.lang.Object>
get
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public final java.lang.Object put(java.lang.String fieldName, java.lang.Object value)
put
in interface java.util.Map<java.lang.String,java.lang.Object>
put
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public GenericData set(java.lang.String fieldName, java.lang.Object value)
null
) for the given field name. Any existing value
for the field will be overwritten. It may be more slightly more efficient than
put(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.
public final void putAll(java.util.Map<? extends java.lang.String,?> map)
putAll
in interface java.util.Map<java.lang.String,java.lang.Object>
putAll
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public final java.lang.Object remove(java.lang.Object name)
remove
in interface java.util.Map<java.lang.String,java.lang.Object>
remove
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> entrySet()
entrySet
in interface java.util.Map<java.lang.String,java.lang.Object>
entrySet
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public GenericData clone()
clone
in class java.util.AbstractMap<java.lang.String,java.lang.Object>
public final java.util.Map<java.lang.String,java.lang.Object> getUnknownKeys()
public final void setUnknownKeys(java.util.Map<java.lang.String,java.lang.Object> unknownFields)
public final ClassInfo getClassInfo()
Copyright © 2011-2018 Google. All Rights Reserved.