package mireka.filterchain;
import java.io.IOException;
import mireka.MailData;
import mireka.address.ReversePath;
import mireka.filter.Filter;
import mireka.filter.FilterChain;
import mireka.filter.FilterReply;
import mireka.filter.MailTransaction;
import mireka.filter.RecipientContext;
import mireka.smtp.RejectExceptionExt;
import org.subethamail.smtp.TooMuchDataException;
class Link implements FilterChain {
private final Filter filter;
private final MailTransaction mailTransaction;
public Link(Filter filter, MailTransaction mailTransaction) {
this.filter = filter;
this.mailTransaction = mailTransaction;
}
@Override
public void begin() {
filter.begin();
}
@Override
public void from(ReversePath from) throws RejectExceptionExt {
filter.from(from);
}
@Override
public FilterReply verifyRecipient(RecipientContext recipientContext)
throws RejectExceptionExt {
return filter.verifyRecipient(recipientContext);
}
@Override
public void recipient(RecipientContext recipientContext)
throws RejectExceptionExt {
filter.recipient(recipientContext);
}
@Override
public void data(MailData data) throws RejectExceptionExt,
TooMuchDataException, IOException {
mailTransaction.replaceData(data);
filter.data(data);
}
}