/**
* ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium.
*/
package org.esupportail.helpdesk.services.feed.imap.spam;
import java.util.List;
import java.util.Set;
import javax.mail.Address;
import org.esupportail.commons.utils.Assert;
import org.esupportail.helpdesk.domain.beans.User;
import org.springframework.beans.factory.InitializingBean;
/**
* An implementation of SpamFilter that delegates to other filters.
*/
public class DelegatingSpamFilterImpl implements InitializingBean, SpamFilter {
/**
* The serialization id.
*/
private static final long serialVersionUID = -5883726634418902379L;
/**
* The filters to delegate.
*/
private List<SpamFilter> filters;
/**
*
*/
public DelegatingSpamFilterImpl() {
super();
}
/**
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
*/
@Override
public void afterPropertiesSet() {
Assert.notEmpty(filters,
"property filters of class " + this.getClass().getName() + " can not be null");
}
/**
* @see org.esupportail.helpdesk.services.feed.imap.spam.SpamFilter#isSpam(
* org.esupportail.helpdesk.domain.beans.User, java.util.Set,
* java.lang.String, java.lang.String, byte[])
*/
@Override
public boolean isSpam(
final User sender,
final Set<Address> recipients,
final String subject,
final String contentType,
final byte[] data) {
for (SpamFilter filter : filters) {
if (filter.isSpam(sender, recipients, subject, contentType, data)) {
return true;
}
}
return false;
}
/**
* @see org.esupportail.helpdesk.services.feed.imap.spam.SpamFilter#filters()
*/
@Override
public boolean filters() {
for (SpamFilter filter : filters) {
if (filter.filters()) {
return true;
}
}
return false;
}
/**
* @return the filters
*/
protected List<SpamFilter> getFilters() {
return filters;
}
/**
* @param filters the filters to set
*/
public void setFilters(final List<SpamFilter> filters) {
this.filters = filters;
}
}