|
|
|
@ -11,9 +11,6 @@ import androidx.work.Data;
|
|
|
|
|
*/
|
|
|
|
|
public class SafeData {
|
|
|
|
|
|
|
|
|
|
private final static int INVALID_INT = Integer.MIN_VALUE;
|
|
|
|
|
private final static long INVALID_LONG = Long.MIN_VALUE;
|
|
|
|
|
|
|
|
|
|
private final Data data;
|
|
|
|
|
|
|
|
|
|
public SafeData(@NonNull Data data) {
|
|
|
|
@ -21,60 +18,38 @@ public class SafeData {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int getInt(@NonNull String key) {
|
|
|
|
|
int value = data.getInt(key, INVALID_INT);
|
|
|
|
|
|
|
|
|
|
if (value == INVALID_INT) {
|
|
|
|
|
throw new IllegalStateException("Missing key: " + key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getInt(key, -1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public long getLong(@NonNull String key) {
|
|
|
|
|
long value = data.getLong(key, INVALID_LONG);
|
|
|
|
|
|
|
|
|
|
if (value == INVALID_LONG) {
|
|
|
|
|
throw new IllegalStateException("Missing key: " + key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getLong(key, -1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public @NonNull String getString(@NonNull String key) {
|
|
|
|
|
String value = data.getString(key);
|
|
|
|
|
|
|
|
|
|
if (value == null) {
|
|
|
|
|
throw new IllegalStateException("Missing key: " + key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public @Nullable String getNullableString(@NonNull String key) {
|
|
|
|
|
public String getString(@NonNull String key) {
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getString(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public @NonNull String[] getStringArray(@NonNull String key) {
|
|
|
|
|
String[] value = data.getStringArray(key);
|
|
|
|
|
|
|
|
|
|
if (value == null) {
|
|
|
|
|
throw new IllegalStateException("Missing key: " + key);
|
|
|
|
|
}
|
|
|
|
|
public String[] getStringArray(@NonNull String key) {
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getStringArray(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
public long[] getLongArray(@NonNull String key) {
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getLongArray(key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public @NonNull long[] getLongArray(@NonNull String key) {
|
|
|
|
|
long[] value = data.getLongArray(key);
|
|
|
|
|
public boolean getBoolean(@NonNull String key) {
|
|
|
|
|
assertKeyPresence(key);
|
|
|
|
|
return data.getBoolean(key, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (value == null) {
|
|
|
|
|
private void assertKeyPresence(@NonNull String key) {
|
|
|
|
|
if (!data.getKeyValueMap().containsKey(key)) {
|
|
|
|
|
throw new IllegalStateException("Missing key: " + key);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean getBoolean(@NonNull String key, boolean defaultValue) {
|
|
|
|
|
return data.getBoolean(key, defaultValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|