/**
* ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium.
*/
package org.esupportail.helpdesk.services.feed.imap.spam;
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 abstract implementation of SpamFilter that is based on a pattern in the subject of emails.
*/
@SuppressWarnings("serial")
public abstract class AbstractPatternBasedSubjectSpamFilter implements InitializingBean, SpamFilter {
/**
* The pattern to look for at the beginning of email subjects.
*/
private String pattern;
/**
* Constructor.
*/
public AbstractPatternBasedSubjectSpamFilter() {
super();
}
/**
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
*/
@Override
public void afterPropertiesSet() {
Assert.notNull(pattern,
"property pattern of class " + this.getClass().getName() + " can not be null");
}
/**
* @see org.esupportail.helpdesk.services.feed.imap.spam.SpamFilter#filters()
*/
@Override
public boolean filters() {
return true;
}
/**
* @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(
@SuppressWarnings("unused")
final User sender,
@SuppressWarnings("unused")
final Set<Address> recipients,
final String subject,
@SuppressWarnings("unused")
final String contentType,
@SuppressWarnings("unused")
final byte[] data) {
return isSpam(subject);
}
/**
* @param subject
* @return true if the messsage should be considered as spam.
*/
protected abstract boolean isSpam(String subject);
/**
* @return the pattern
*/
protected String getPattern() {
return pattern;
}
/**
* @param pattern the pattern to set
*/
public void setPattern(final String pattern) {
this.pattern = pattern;
}
}