Боролся целый день с валидатором, сначала все работало корректно, но на неправильный запрос мог придти результат. Все переделал починил, теперь на неправильные запросы возвращается пустой список (нулл пробовал, одна фигня). Даты тоже корректно обработал. В общем все обрабатывается корректно, результаты все корректные. Может где чего пропустил конечно. Даты и регулярки проверил. Комбинации вызовов проверил. Помогите найти возможные косяки) Алгоритм такой : 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, через свич