Реализуй интерфейс DateQuery у класса LogParser:
3.1. Метод getDatesForUserAndEvent() должен возвращать даты, когда определенный пользователь произвел определенное событие.
3.2. Метод getDatesWhenSomethingFailed() должен возвращать даты, когда любое событие не выполнилось (статус FAILED).
3.3. Метод getDatesWhenErrorHappened() должен возвращать даты, когда любое событие закончилось ошибкой (статус ERROR).
3.4. Метод getDateWhenUserLoggedFirstTime() должен возвращать дату, когда пользователь залогинился впервые за указанный период. Если такой даты в логах нет - null.
3.5. Метод getDateWhenUserSolvedTask() должен возвращать дату, когда пользователь впервые попытался решить определенную задачу. Если такой даты в логах нет - null.
3.6. Метод getDateWhenUserDoneTask() должен возвращать дату, когда пользователь впервые решил определенную задачу. Если такой даты в логах нет - null.
3.7. Метод getDatesWhenUserWroteMessage() должен возвращать даты, когда пользователь написал сообщение.
3.8. Метод getDatesWhenUserDownloadedPlugin() должен возвращать даты, когда пользователь скачал плагин.
- Класс LogParser должен поддерживать интерфейс DateQuery.
- Метод getDatesForUserAndEvent(String, Event, Date, Date) должен возвращать множество дат, когда переданный пользователь произвел переданное событие за выбранный период.
- Метод getDatesWhenSomethingFailed(Date, Date) должен возвращать множество дат, когда любое событие не выполнилось за выбранный период.
- Метод getDatesWhenErrorHappened(Date, Date) должен возвращать множество дат, когда любое событие закончилось ошибкой за выбранный период.
- Метод getDateWhenUserLoggedFirstTime(String, Date, Date) должен возвращать дату, когда переданный пользователь впервые залогинился за выбранный период. Если такой даты в логах нет - null.
- Метод getDateWhenUserSolvedTask(String, int, Date, Date) должен возвращать дату, когда переданный пользователь впервые попытался решить задачу с номером task за выбранный период. Если такой даты в логах нет - null.
- Метод getDateWhenUserDoneTask(String, int, Date, Date) должен возвращать дату, когда переданный пользователь впервые решил задачу с номером task за выбранный период. Если такой даты в логах нет - null.
- Метод getDatesWhenUserWroteMessage(String, Date, Date) должен возвращать множество дат, когда переданный пользователь написал сообщение за выбранный период.
- Метод getDatesWhenUserDownloadedPlugin(String, Date, Date) должен возвращать множество дат, когда переданный пользователь скачал плагин за выбранный период.