Skip to content

Instantly share code, notes, and snippets.

@ashughes
Created June 17, 2019 23:59
Show Gist options
  • Save ashughes/dfca38c845eda0c8c721fd64e5ec1352 to your computer and use it in GitHub Desktop.
Save ashughes/dfca38c845eda0c8c721fd64e5ec1352 to your computer and use it in GitHub Desktop.
WorkManager data extensions to add require*() methods
inline fun Data.requireBoolean(key: String): Boolean = keyValueMap[key] as? Boolean ?: throw IllegalArgumentException("Missing boolean value for key: $key")
inline fun Data.requireBooleanArray(key: String): BooleanArray = getBooleanArray(key) ?: throw IllegalArgumentException("Missing boolean array value for key: $key")
inline fun Data.requireByte(key: String): Byte = keyValueMap[key] as? Byte ?: throw IllegalArgumentException("Missing byte value for key: $key")
inline fun Data.requireByteArray(key: String): ByteArray = getByteArray(key) ?: throw IllegalArgumentException("Missing byte array value for key: $key")
inline fun Data.requireInt(key: String): Int = keyValueMap[key] as? Int ?: throw IllegalArgumentException("Missing int value for key: $key")
inline fun Data.requireIntArray(key: String): IntArray = getIntArray(key) ?: throw IllegalArgumentException("Missing int array value for key: $key")
inline fun Data.requireLong(key: String): Long = keyValueMap[key] as? Long ?: throw IllegalArgumentException("Missing long value for key: $key")
inline fun Data.requireLongArray(key: String): LongArray = getLongArray(key) ?: throw IllegalArgumentException("Missing long array value for key: $key")
inline fun Data.requireFloat(key: String): Float = keyValueMap[key] as? Float ?: throw IllegalArgumentException("Missing float value for key: $key")
inline fun Data.requireFloatArray(key: String): FloatArray = getFloatArray(key) ?: throw IllegalArgumentException("Missing float array value for key: $key")
inline fun Data.requireDouble(key: String): Double = keyValueMap[key] as? Double ?: throw IllegalArgumentException("Missing double value for key: $key")
inline fun Data.requireDoubleArray(key: String): DoubleArray = getDoubleArray(key) ?: throw IllegalArgumentException("Missing double array value for key: $key")
inline fun Data.requireString(key: String): String = getString(key) ?: throw IllegalArgumentException("Missing string value for key: $key")
inline fun Data.requireStringArray(key: String): Array<out String> = getStringArray(key) ?: throw IllegalArgumentException("Missing string array value for key: $key")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment