package org.jboss.seam.mail.ui;
import java.io.IOException;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.mail.MessagingException;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.MimeMessage;
/**
* Encode a recipient. Work is done here, subclasses simply need to
* specify a RecipientType
*/
public abstract class RecipientAddressComponent extends AddressComponent
{
@Override
public void encodeBegin(FacesContext facesContext) throws IOException
{
try
{
MimeMessage mimeMessage = findMimeMessage();
mimeMessage.addRecipient(getRecipientType(), getInternetAddress(facesContext));
}
catch (AddressException e)
{
throw new FacesException(e.getMessage() + " (" + e.getRef() +")", e);
}
catch (MessagingException e)
{
throw new FacesException(e.getMessage(), e);
}
}
protected abstract RecipientType getRecipientType();
}