code: public static Set<EmailAddress> parseMultiple(String email) {
  		if(AssertUtils.isEmpty(email)) {
  			throw new IllegalArgumentException("Email cannot be empty/null");
  		}
  		
  		Set<EmailAddress> emails = new HashSet<EmailAddress>();
  		String[] tokens = email.split("[;,]");
  		for(String token : tokens) {
  			token = token.trim();
  			
  			// check for angular brackets
  			if(token.contains("<") || token.contains(">")) {
  				int start = token.indexOf('<');
  				int end = token.indexOf('>');
  				if(start >= 0 && end > start) {
  					String name = token.substring(start + 1, end).trim();
  					String em = token.substring(end + 1).trim();
  					emails.add(new EmailAddress(name, em));
  				} else {
  					emails.add(new EmailAddress(token));
  				}
  			} else {
  				emails.add(new EmailAddress(token));
  			}
  		}
  		
  		return emails;
  	}
docs: Parse a string that contains multiple email addresses and return a
  {@link Set} of {@link EmailAddress} objects that can then be set to various
  properties of {@link Email} object.
  
  @param email
  the email string
  
  @return a {@link Set} of {@link EmailAddress} objects