Требуется написать класс ru.ncedu.bestgroup.mailing.parsing.BusinessCardParser, реализующий интерфейс Callable.
public class BusinessCardParser implements Callable<Integer> {
private String directory;
private String recipientsFileName;
public BusinessCardParser(String directory, String recipientsFileName) {
this.directory = directory;
this.recipientsFileName = recipientsFileName;
}
@Override
public Integer call() throws Exception {
// TODO implement
}
}
В методе call нужно сделать:
0) С помощью XMLUtils прочитать файл с адресной книгой и сохранить содержимое в множестве бизнес-карт.
1) Для директории, указанной в конструкторе, необходимо найти все файлы, лежащие непосредственно в этой папке, для каждого из них:
2) Создать BusinessCard, зная формат бизнес-карт (см. комментарий к #2 ), и то, что первой строчкой всегда является указание адреса.
3) Для каждой полученной бизнес-карты необходимо проверить, есть ли она в адресной книге и, если существует, перед добавлением нужно удалить из адресной книги предыдущий объект.
4) При возникшей ошибке чтения/содержания файла пробуем его переместить в папку directory + File.separator + "invalid", для удачно прочтённых шаблонов перемещаем их в папку directory + File.separator + "processed". Можно считать, что к моменту исполнения кода все папки существуют.
5) Записать в файл recipientsFileName обновлённую адресную книгу.
6) Вернуть количество успешно считанных бизнес-карт.
Потомок #2
Требуется написать класс ru.ncedu.bestgroup.mailing.parsing.BusinessCardParser, реализующий интерфейс Callable.
В методе call нужно сделать: 0) С помощью XMLUtils прочитать файл с адресной книгой и сохранить содержимое в множестве бизнес-карт. 1) Для директории, указанной в конструкторе, необходимо найти все файлы, лежащие непосредственно в этой папке, для каждого из них: 2) Создать BusinessCard, зная формат бизнес-карт (см. комментарий к #2 ), и то, что первой строчкой всегда является указание адреса. 3) Для каждой полученной бизнес-карты необходимо проверить, есть ли она в адресной книге и, если существует, перед добавлением нужно удалить из адресной книги предыдущий объект. 4) При возникшей ошибке чтения/содержания файла пробуем его переместить в папку directory + File.separator + "invalid", для удачно прочтённых шаблонов перемещаем их в папку directory + File.separator + "processed". Можно считать, что к моменту исполнения кода все папки существуют. 5) Записать в файл recipientsFileName обновлённую адресную книгу. 6) Вернуть количество успешно считанных бизнес-карт.