diff --git a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/validation/api/validators/NonNullValidator.java b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/validation/api/validators/NonNullValidator.java new file mode 100644 index 0000000..c3b8ab8 --- /dev/null +++ b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/validation/api/validators/NonNullValidator.java @@ -0,0 +1,27 @@ +package de.siphalor.tweed5.defaultextensions.validation.api.validators; + +import de.siphalor.tweed5.core.api.entry.ConfigEntry; +import de.siphalor.tweed5.defaultextensions.validation.api.ConfigEntryValidator; +import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationIssue; +import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationIssueLevel; +import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationResult; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; + +public class NonNullValidator implements ConfigEntryValidator { + @Override + public ValidationResult validate(ConfigEntry configEntry, T value) { + if (value == null) { + return ValidationResult.withIssues(null, Collections.singleton( + new ValidationIssue("Value must not be null", ValidationIssueLevel.ERROR) + )); + } + return ValidationResult.ok(value); + } + + @Override + public @NotNull String description(ConfigEntry configEntry) { + return "Must be set (not null)."; + } +}