Open DyerQ opened 8 years ago
property-name, двоеточие, один пробел и значение. Один файл соответствует ровно одной визитке. В конце файла пустая строка
e-mail: vasiliy.urosov@phystech.edu
full-name: Василий Уросов
university: МФТИ (ГУ)
Здравствуйте, #{full-name}!
Вы учитесь в #{university}? Тогда это предложение точно для Вас!!!
...
В сочетании с вышеописанной визиткой:
Здравствуйте, Василий Уросов!
Вы учитесь в МФТИ (ГУ)? Тогда это предложение точно для Вас!!!
...
Описание задачи
Нужно написать класс, у которого будет следующий API:
Метод parseBusinessCards() должен возвращать количество обновлённых и добавленных записей в адресную книгу. Метод parseMailTemplates() возвращает коллекцию добавленных шаблонов (при отсутствии добавленных - пустую коллекцию).
Рекомендую обновление записей сделать следующим образом: 1) Сохранение всех записей из xml в множестве (HashSet set)
2) Сканирование файлов в указанной директории, получение массива File[]
3) Для каждого файла запустить функцию private BusinessCard parseBusinessCard(File file), которая при успешной обработке файла поместит его (переименованием) в поддиректорию processed, при неудачной обработке пометит его в директорию invalid и вернёт null.
4) Для каждой обработанной бизнес-карты необходимо проверить, не присутствует ли в адресной книге карточка с тем же адресом (set.contains). Если имеет, то перед добавлением в общее множество, старый объект необходимо удалить (set.remove).
5) Полученное множество записей снова перевести в xml и перезаписать файл.
Шаблоны текстов писем парсить проще: необходимо всё содержимое файла перегнать в объект типа String и создать MailTemplate через конструктор.
Используемый формат бизнес-карт смотри в комментарии.