From df3a42a87649a8003fbd789dc2445abd4cfa99d2 Mon Sep 17 00:00:00 2001 From: Siphalor Date: Sun, 9 Jun 2024 22:31:56 +0200 Subject: [PATCH] Non-null validator --- .../api/validators/NonNullValidator.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/validation/api/validators/NonNullValidator.java 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)."; + } +}