Package net.dv8tion.jda.api.utils.data
Class DataObject
- java.lang.Object
-
- net.dv8tion.jda.api.utils.data.DataObject
-
- All Implemented Interfaces:
SerializableData
public class DataObject extends Object implements SerializableData
Represents a map of values used in communication with the Discord API.Throws
NullPointerException, if a parameter annotated withNonnullis provided withnull.This class is not Thread-Safe.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DataObjectempty()Creates a new empty DataObject, ready to be populated with values.static DataObjectfromETF(byte[] data)Parses usingExTermDecoder.static DataObjectfromJson(byte[] data)Parses a JSON payload into a DataObject instance.static DataObjectfromJson(InputStream stream)Parses a JSON payload into a DataObject instance.static DataObjectfromJson(Reader stream)Parses a JSON payload into a DataObject instance.static DataObjectfromJson(String json)Parses a JSON payload into a DataObject instance.Objectget(String key)Resolves any type to the provided key.DataArraygetArray(String key)Resolves a DataArray to a key.booleangetBoolean(String key)Resolves aBooleanto a key.booleangetBoolean(String key, boolean defaultValue)Resolves aBooleanto a key.intgetInt(String key)Resolves an int to a key.intgetInt(String key, int defaultValue)Resolves an int to a key.longgetLong(String key)Resolves a long to a key.longgetLong(String key, long defaultValue)Resolves a long to a key.DataObjectgetObject(String key)Resolves a DataObject to a key.StringgetString(String key)Resolves aStringto a key.StringgetString(String key, String defaultValue)Resolves aStringto a key.intgetUnsignedInt(String key)Resolves an unsigned int to a key.intgetUnsignedInt(String key, int defaultValue)Resolves an unsigned int to a key.longgetUnsignedLong(String key)Resolves an unsigned long to a key.longgetUnsignedLong(String key, long defaultValue)Resolves an unsigned long to a key.booleanhasKey(String key)Whether the specified key is present.booleanisNull(String key)Whether the specified key is missing or nullbooleanisType(String key, DataType type)Whether the specified key is of the specified type.Set<String>keys()Setof all keys in this DataObject.Optional<Object>opt(String key)Resolves any type to the provided key.Optional<DataArray>optArray(String key)Resolves a DataArray to a key.Optional<DataObject>optObject(String key)Resolves a DataObject to a key.DataObjectput(String key, Object value)Upserts a new value for the provided key.DataObjectputNull(String key)Upserts a null value for the provided key.DataObjectremove(String key)Removes the value associated with the specified key.DataObjecttoData()SerializedDataObjectfor this object.byte[]toETF()Serializes this object as ETF MAP term.byte[]toJson()Serialize this object as JSON.Map<String,Object>toMap()Converts this DataObject to aMapStringtoString()Collection<Object>values()Collectionof all values in this DataObject.
-
-
-
Method Detail
-
empty
@Nonnull public static DataObject empty()
Creates a new empty DataObject, ready to be populated with values.- Returns:
- An empty DataObject instance
- See Also:
put(String, Object)
-
fromJson
@Nonnull public static DataObject fromJson(@Nonnull byte[] data)
Parses a JSON payload into a DataObject instance.- Parameters:
data- The correctly formatted JSON payload to parse- Returns:
- A DataObject instance for the provided payload
- Throws:
ParsingException- If the provided json is incorrectly formatted
-
fromJson
@Nonnull public static DataObject fromJson(@Nonnull String json)
Parses a JSON payload into a DataObject instance.- Parameters:
json- The correctly formatted JSON payload to parse- Returns:
- A DataObject instance for the provided payload
- Throws:
ParsingException- If the provided json is incorrectly formatted
-
fromJson
@Nonnull public static DataObject fromJson(@Nonnull InputStream stream)
Parses a JSON payload into a DataObject instance.- Parameters:
stream- The correctly formatted JSON payload to parse- Returns:
- A DataObject instance for the provided payload
- Throws:
ParsingException- If the provided json is incorrectly formatted or an I/O error occurred
-
fromJson
@Nonnull public static DataObject fromJson(@Nonnull Reader stream)
Parses a JSON payload into a DataObject instance.- Parameters:
stream- The correctly formatted JSON payload to parse- Returns:
- A DataObject instance for the provided payload
- Throws:
ParsingException- If the provided json is incorrectly formatted or an I/O error occurred
-
fromETF
@Nonnull public static DataObject fromETF(@Nonnull byte[] data)
Parses usingExTermDecoder. The provided data must start with the correct version header (131).- Parameters:
data- The data to decode- Returns:
- A DataObject instance for the provided payload
- Throws:
IllegalArgumentException- If the provided data is nullParsingException- If the provided ETF payload is incorrectly formatted or an I/O error occurred
-
hasKey
public boolean hasKey(@Nonnull String key)
Whether the specified key is present.- Parameters:
key- The key to check- Returns:
- True, if the specified key is present
-
isNull
public boolean isNull(@Nonnull String key)
Whether the specified key is missing or null- Parameters:
key- The key to check- Returns:
- True, if the specified key is null or missing
-
isType
public boolean isType(@Nonnull String key, @Nonnull DataType type)
Whether the specified key is of the specified type.- Parameters:
key- The key to checktype- The type to check- Returns:
- True, if the type check is successful
- See Also:
DataType.isType(Object)
-
getObject
@Nonnull public DataObject getObject(@Nonnull String key)
Resolves a DataObject to a key.- Parameters:
key- The key to check for a value- Returns:
- The resolved instance of DataObject for the key
- Throws:
ParsingException- If the type is incorrect or no value is present for the specified key
-
optObject
@Nonnull public Optional<DataObject> optObject(@Nonnull String key)
Resolves a DataObject to a key.- Parameters:
key- The key to check for a value- Returns:
- The resolved instance of DataObject for the key, wrapped in
Optional - Throws:
ParsingException- If the type is incorrect
-
getArray
@Nonnull public DataArray getArray(@Nonnull String key)
Resolves a DataArray to a key.- Parameters:
key- The key to check for a value- Returns:
- The resolved instance of DataArray for the key
- Throws:
ParsingException- If the type is incorrect or no value is present for the specified key
-
optArray
@Nonnull public Optional<DataArray> optArray(@Nonnull String key)
Resolves a DataArray to a key.- Parameters:
key- The key to check for a value- Returns:
- The resolved instance of DataArray for the key, wrapped in
Optional - Throws:
ParsingException- If the type is incorrect
-
opt
@Nonnull public Optional<Object> opt(@Nonnull String key)
Resolves any type to the provided key.- Parameters:
key- The key to check for a value- Returns:
Optionalwith a possible value
-
get
@Nonnull public Object get(@Nonnull String key)
Resolves any type to the provided key.- Parameters:
key- The key to check for a value- Returns:
- The value of any type
- Throws:
ParsingException- If the value is missing or null- See Also:
opt(String)
-
getString
@Nonnull public String getString(@Nonnull String key)
Resolves aStringto a key.- Parameters:
key- The key to check for a value- Returns:
- The String value
- Throws:
ParsingException- If the value is missing or null
-
getString
@Contract("_, !null -> !null") public String getString(@Nonnull String key, @Nullable String defaultValue)Resolves aStringto a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- The String value, or null if provided with null defaultValue
-
getBoolean
public boolean getBoolean(@Nonnull String key)
Resolves aBooleanto a key.- Parameters:
key- The key to check for a value- Returns:
- True, if the value is present and set to true. False if the value is missing or set to false.
- Throws:
ParsingException- If the value is of the wrong type
-
getBoolean
public boolean getBoolean(@Nonnull String key, boolean defaultValue)
Resolves aBooleanto a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- True, if the value is present and set to true. False if the value is set to false. defaultValue if it is missing.
- Throws:
ParsingException- If the value is of the wrong type
-
getLong
public long getLong(@Nonnull String key)
Resolves a long to a key.- Parameters:
key- The key to check for a value- Returns:
- The long value for the key
- Throws:
ParsingException- If the value is missing, null, or of the wrong type
-
getLong
public long getLong(@Nonnull String key, long defaultValue)
Resolves a long to a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- The long value for the key
- Throws:
ParsingException- If the value is of the wrong type
-
getUnsignedLong
public long getUnsignedLong(@Nonnull String key)
Resolves an unsigned long to a key.- Parameters:
key- The key to check for a value- Returns:
- The unsigned long value for the key
- Throws:
ParsingException- If the value is missing, null, or of the wrong type
-
getUnsignedLong
public long getUnsignedLong(@Nonnull String key, long defaultValue)
Resolves an unsigned long to a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- The unsigned long value for the key
- Throws:
ParsingException- If the value is of the wrong type
-
getInt
public int getInt(@Nonnull String key)
Resolves an int to a key.- Parameters:
key- The key to check for a value- Returns:
- The int value for the key
- Throws:
ParsingException- If the value is missing, null, or of the wrong type
-
getInt
public int getInt(@Nonnull String key, int defaultValue)
Resolves an int to a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- The int value for the key
- Throws:
ParsingException- If the value is of the wrong type
-
getUnsignedInt
public int getUnsignedInt(@Nonnull String key)
Resolves an unsigned int to a key.- Parameters:
key- The key to check for a value- Returns:
- The unsigned int value for the key
- Throws:
ParsingException- If the value is missing, null, or of the wrong type
-
getUnsignedInt
public int getUnsignedInt(@Nonnull String key, int defaultValue)
Resolves an unsigned int to a key.- Parameters:
key- The key to check for a valuedefaultValue- Alternative value to use when no value or null value is associated with the key- Returns:
- The unsigned int value for the key
- Throws:
ParsingException- If the value is of the wrong type
-
remove
@Nonnull public DataObject remove(@Nonnull String key)
Removes the value associated with the specified key. If no value is associated with the key, this does nothing.- Parameters:
key- The key to unlink- Returns:
- A DataObject with the removed key
-
putNull
@Nonnull public DataObject putNull(@Nonnull String key)
Upserts a null value for the provided key.- Parameters:
key- The key to upsert- Returns:
- A DataObject with the updated value
-
put
@Nonnull public DataObject put(@Nonnull String key, @Nullable Object value)
Upserts a new value for the provided key.- Parameters:
key- The key to upsertvalue- The new value- Returns:
- A DataObject with the updated value
-
values
@Nonnull public Collection<Object> values()
Collectionof all values in this DataObject.- Returns:
Collectionfor all values
-
toJson
@Nonnull public byte[] toJson()
Serialize this object as JSON.- Returns:
- byte array containing the JSON representation of this object
-
toETF
@Nonnull public byte[] toETF()
Serializes this object as ETF MAP term.- Returns:
- byte array containing the encoded ETF term
-
toMap
@Nonnull public Map<String,Object> toMap()
Converts this DataObject to aMap- Returns:
- The resulting map
-
toData
@Nonnull public DataObject toData()
Description copied from interface:SerializableDataSerializedDataObjectfor this object.- Specified by:
toDatain interfaceSerializableData- Returns:
DataObject
-
-