001 package de.deepamehta.plugins.mail;
002
003 import java.io.UnsupportedEncodingException;
004 import java.util.ArrayList;
005 import java.util.HashMap;
006 import java.util.List;
007
008 import javax.mail.internet.AddressException;
009 import javax.mail.internet.InternetAddress;
010
011 /**
012 * Hash recipient lists by type.
013 */
014 @SuppressWarnings("serial")
015 class RecipientsByType extends HashMap<RecipientType, List<InternetAddress>> {
016
017 private Integer count = 0;
018
019 public void add(String typeUri, String address, String personal)
020 throws UnsupportedEncodingException, AddressException {
021 InternetAddress internetAddress = new InternetAddress(address, personal);
022 internetAddress.validate();
023 getTypeList(RecipientType.fromUri(typeUri)).add(internetAddress);
024 count++;
025 }
026
027 private List<InternetAddress> getTypeList(RecipientType type) {
028 if (get(type) == null) {
029 put(type, new ArrayList<InternetAddress>());
030 }
031 return get(type);
032 }
033
034 public Integer getCount() {
035 return count;
036 }
037 }