fix: check if patch option requirement is met

This commit is contained in:
Sculas
2022-08-02 22:41:34 +02:00
parent 35c6489dba
commit 14a73bfcaf
2 changed files with 13 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ class NoSuchOptionException(val option: String) : Exception("No such option: $op
class IllegalValueException(val value: Any?) : Exception("Illegal value: $value")
class InvalidTypeException(val got: String, val expected: String) :
Exception("Invalid option value type: $got, expected $expected")
class RequirementNotMetException : Exception("null was passed into an option that requires a value")
/**
* A registry for an array of [PatchOption]s.
@@ -72,6 +73,9 @@ sealed class PatchOption<T>(
) {
var value: T? = default
set(value) {
if (value == null && required) {
throw RequirementNotMetException()
}
if (!validator(value)) {
throw IllegalValueException(value)
}