Боролся целый день с валидатором, сначала все работало корректно, но на неправильный запрос мог придти результат. Все переделал починил, теперь на неправильные запросы возвращается пустой список (нулл пробовал, одна фигня). Даты тоже корректно обработал. В общем все обрабатывается корректно, результаты все корректные. Может где чего пропустил конечно. Даты и регулярки проверил. Комбинации вызовов проверил. Помогите найти возможные косяки)
Алгоритм такой :
1) Создаем пустую переменную предикат класса LogHelper (где хранится строка лога)
2) Берем из строки запроса value - наше значение, которое будем искать. Проверяем по одной из пяти уникальных регулярок (гарантированно в чужую не попадем) - если регулярка прошла проверяем поле field2 - то есть является ли наше value значением поле field2, если да - все, если нет - то возвращаем пустой список запрос составлен некорректно.
3) записываем в предикат правильное значение - если к нам пришел запрос "get date for user = "Amigo"", то в предикат передаем соответственно x -> x.data.equals(finalDate)
4) командой
List<LogHelper> helpers = listCreator().stream().filter(predicate).collect(Collectors.toList());
фильтруем исходный лист по предикату
5) а дальше банально возвращаем сет из того, что указано в поле field1, через свичpackage com.javarush.task.task39.task3913;
public enum Event {
LOGIN,
DOWNLOAD_PLUGIN,
WRITE_MESSAGE,
SOLVE_TASK,
DONE_TASK
}