DyerQ / Java-SE-Practice-Artifacts

0 stars 0 forks source link

MailProducer #3

Closed DyerQ closed 9 years ago

DyerQ commented 9 years ago

Описание задачи

Необходимо реализовать API следующего класса:

import java.util.Collection;
import java.util.concurrent.BlockingQueue;

public abstract class MailProducer {
    private String recipientsFileName;
    private BlockingQueue<Mail> queue;
    private Properties defaultProperties;

    public MailProducer(String recipientsFileName, BlockingQueue<Mail> queue, Properties defaultProperties) {
        this.recipientsFileName = recipientsFileName;
        this.queue = queue;
        this.defaultProperties = defaultProperties;
    }

    public abstract Collection<MailTemplate> buildMail(Collection<MailTemplate> templates);
    public abstract void enqueueMail(Collection<Mail> mails);
}

Метод buildMail будет считывать xml с адресной книгой (вызывать XMLUtils из #6). Дальше для каждого переданного шаблона письма для каждого получателя создаётся объект Mail и возвращается коллекция из всех полученных писем.

Метод enqueueMail помещает все письма из коллекции в очередь, переданную в конструкторе класса.