Parcourir la source

Add a validation function and an error type.

Sam Jaffe il y a 6 ans
Parent
commit
f36611b683

+ 1 - 0
src/main/lombok/org/leumasjaffe/json/schema/Tester.java

@@ -9,5 +9,6 @@ public interface Tester {
 			JsonNodeType.NUMBER, JsonNodeType.BOOLEAN, JsonNodeType.NULL
 	};
 	JsonNodeType[] acceptedTypes();
+	default void validate(final JsonNode node) throws ValidationException {}
 	boolean accepts(final JsonNode node);
 }

+ 34 - 0
src/main/lombok/org/leumasjaffe/json/schema/ValidationException.java

@@ -0,0 +1,34 @@
+package org.leumasjaffe.json.schema;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.experimental.FieldDefaults;
+
+@SuppressWarnings("serial")
+@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
+public class ValidationException extends IllegalArgumentException {
+	@Getter List<ValidationException> causingExceptions; 
+
+	public ValidationException() {
+		this.causingExceptions = Collections.emptyList();
+	}
+
+	public ValidationException(String s) {
+		super(s);
+		this.causingExceptions = Collections.emptyList();
+	}
+
+	public ValidationException(ValidationException... causes) {
+		this.causingExceptions = Collections.unmodifiableList(Arrays.asList(causes));
+	}
+
+	public ValidationException(String message, ValidationException... causes) {
+		super(message);
+		this.causingExceptions = Collections.unmodifiableList(Arrays.asList(causes));
+	}
+
+}