Имеющиеся классы работают, но имеют один фатальный недостаток. Потихоньку будем исправлять.
1) По всем классам необходимо пройтись с помощью Ctrl+Alt+L, удалить ненужные импорты (если настроить идею, то это будет сделано автоматически)2) В классе MailTemplate метод getMail заменяет, используя только стандартные шаблоны, но не properties от бизнес-карты. Нужно написать ещё один цикл или сделать foreach по объединению свойств, имея ввиду, что шаблоны от бизнес-карт имеют больший приоритет.3) Добавить в класс Mail поле subject, соответствующий параметр в конструктор и геттер.4) Метод buildMail в классе MailProducer должен иметь такую сигнатуру: public Collection buildMail(Collection templates, Set businessCards). Соответственно, нужно убрать лишнее в этом методе, переназвать локальные переменные, для соответствия codeConventions, убрать из класса и конструктора лишнее поле recipientsFileName.5) Добавить класс Main в какой-нибудь gitignore6) Во коде XMLUtils исключения прокидывать наверх, избавиться от try-catch.7) В классе BusinessCard переписать метод equals так, чтобы не было предупреждений от идеи (подойдёт Ctrl+Enter)8) Класс XMLUtils отправить в пакет ru.ncedu.bestgroup.mailing.utils (рефакторинг по правому клику на файл в идее)9) Классы Mail, MailTemplate, BusinessCard отправить в пакет model
Желательно выполнять по порядку. Дополнительно о требуемых изменениях напишу в комментариях.
Имеющиеся классы работают, но имеют один фатальный недостаток. Потихоньку будем исправлять.
1) По всем классам необходимо пройтись с помощью Ctrl+Alt+L, удалить ненужные импорты (если настроить идею, то это будет сделано автоматически)2) В классе MailTemplate метод getMail заменяет, используя только стандартные шаблоны, но не properties от бизнес-карты. Нужно написать ещё один цикл или сделать foreach по объединению свойств, имея ввиду, что шаблоны от бизнес-карт имеют больший приоритет.3) Добавить в класс Mail поле subject, соответствующий параметр в конструктор и геттер.4) Метод buildMail в классе MailProducer должен иметь такую сигнатуру: public Collection buildMail(Collection templates, Set businessCards). Соответственно, нужно убрать лишнее в этом методе, переназвать локальные переменные, для соответствия codeConventions, убрать из класса и конструктора лишнее поле recipientsFileName. 5) Добавить класс Main в какой-нибудь gitignore6) Во коде XMLUtils исключения прокидывать наверх, избавиться от try-catch.7) В классе BusinessCard переписать метод equals так, чтобы не было предупреждений от идеи (подойдёт Ctrl+Enter)8) Класс XMLUtils отправить в пакет ru.ncedu.bestgroup.mailing.utils (рефакторинг по правому клику на файл в идее)9) Классы Mail, MailTemplate, BusinessCard отправить в пакет modelЖелательно выполнять по порядку. Дополнительно о требуемых изменениях напишу в комментариях.