package org.jboss.seam.mail.ui; import java.io.IOException; import javax.faces.context.FacesContext; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; public abstract class AddressComponent extends MailComponent { private String name; private String address; public AddressComponent() { super(); } /** * get an InternetAddress object based upon name, address * @throws IOException * @throws AddressException */ protected InternetAddress getInternetAddress(FacesContext facesContext) throws IOException, AddressException { InternetAddress address = new InternetAddress(); address.setAddress(new Header(getAddress() != null ? getAddress() : encode(facesContext)).getSanitizedValue()); String charset = findMessage().getCharset(); String personal = new Header(getName()).getSanitizedValue(); if (charset == null) { address.setPersonal(personal); } else { address.setPersonal(personal, charset); } address.validate(); return address; } @Override public void encodeChildren(FacesContext arg0) throws IOException { // Disable encoding of children } /** * the email address part of the address */ public String getAddress() { if (address == null) { return getString("address"); } else { return address; } } public void setAddress(String address) { this.address = address; } /** * the name part of the address */ public String getName() { if (name == null) { return getString("name"); } else { return name; } } public void setName(String name) { this.name = name; } }