Журнал регистрации сообщений об ошибках (массивы). (ООП. Массивы)
Создать классы Journal и Record. Написать метод main, демонстрирующий использование этих классов.
Класс Record. Представляет собой запись отдельно взятого сообщения о неисправности.
Поля:
- дата/время;
- важность (число 1..4);
- источник (строка без пробелов);
- сообщение об ошибке (стока, может включать пробелы, переносов строки - нет).
Конструкторы:
- принимающий в качестве параметров значения всех указанных выше полей;
- принимающий единственный параметр - строку в формате, аналогичном возвращаемому методом toString() (см. ниже); разделитель - один или несколько пробелов.
Методы:
- toString() - возвращает текстовое представление записи об ошибке в формате: «yyyy-MM-dd HH:mm:ss важность источник сообщение_об_ошибке». Для удобства просмотра лог-файла в виде текста поле важность следует отображать в следующем формате: Значение Отображать как Примечание 1 . Сообщение о восстановлении после отказа или о нормальной работе 2 ! Предупреждение или сообщение о незначительной ошибке 3 !!! Сообщение о серьезной ошибке 4 !!!!! Сообщение о критической ошибке В независимости от значения, поле важность должно быть пять символов (дополнить пробелами справа) для удобства просмотра записей в виде текстового файла.
Класс Journal.
Содержит массив объектов Record. Содержит методы для:
- добавления записи: public void add(Record r) {...}
- добавления всех записей из другого журнала public void add(Journal j) {...}
- удаления записи: public void remove(Record r) {...}
- удаления записи по ее порядковому номеру: public void remove(int index) {...}
- удаление записей по их порядковому номеру public void remove(int fromIndex, int toIndex) {...}
- удаления всех записей: public void removeAll() {...}
- фильтрации (возвращает объект Journal, в котором хранятся ссылки только на те записи, текстовое представление которых (toString()) содержит заданную строку public Journal filter(String s) {...}
- фильтрации (возвращает объект Journal, в котором хранятся ссылки только на записи о событиях, произошедших в указанный интервал времени public Journal filter(Date fromDate, Date toDate) {...}
- сортировки по дате события public void sortByDate() {...}
- сортировки по (важность, дата) public void sortByImportanceDate() {...}
- сортировки по (важность, источник, дата) public void sortByImportanceSourceDate() {...}
- сортировки по (источник, дата) public void sortBySourceDate() {...}