"Валидатор данных" - библиотека, с помощью которой можно проверять корректность любых данных форм, заполняемых пользователями. Особенности проекта:
- объектно-ориентированная архитектура
- расширяемость кода без необходимости его переписывания
- применяются базовые принципы программирования SOLID
- используется fluent-интерфейс, позволяющий декларативно описывать постановку задачи валидации данных.
import hexlet.code.Validator;
import hexlet.code.schemas.StringSchema;
import hexlet.code.schemas.NumberSchema;
import hexlet.code.schemas.MapSchema;
import hexlet.code.schemas.BaseSchema;
Validator v = new Validator();
// Строки
StringSchema schema = v.string().required();
schema.isValid("what does the fox say"); // true
schema.isValid(""); // false
// Числа
NumberSchema schema = v.number().required().positive();
schema.isValid(-10); // false
schema.isValid(10); // true
// Объект Map с поддержкой проверки структуры
Map<String, BaseSchema> schemas = new HashMap<>();
schemas.put("name", v.string().required());
schemas.put("age", v.number().positive());
MapSchema schema = v.map().sizeof(2).shape(schemas);
Map<String, Object> human1 = new HashMap<>();
human1.put("name", "Kolya");
human1.put("age", 100);
schema.isValid(human1); // true
Map<String, Object> human2 = new HashMap<>();
human2.put("name", "");
human2.put("age", null);
schema.isValid(human2); // false