Advertisement
Guest User

Lañaña

a guest
Jan 3rd, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class MailConfiguration {
  2.  
  3.   private AddressesPart addressesPart;
  4.  
  5.   private String subject;
  6.  
  7.   private FilesAttachments filesAttachments;
  8.  
  9.   private String bodyPart;
  10.  
  11.   public MailConfiguration(AddressesPart addressesPart, String subject, FilesAttachments filesAttachements,
  12.     String bodyPart) {
  13.     Validate.notNull(addressesPart, "addressesPart must not be null");
  14.     Validate.notNull(subject, "subject must not be null");
  15.     Validate.notNull(filesAttachments, "filesAttachments must not be null");
  16.     Validate.notNull(bodyPart, "bodyPart must not be null");
  17.     this.addressesPart = addressesPart;
  18.     this.subject = subject;
  19.     this.filesAttachements = filesAttachements;
  20.     this.bodyPart = bodyPart;
  21.   }
  22.   // ...  some useful getters ......
  23.  
  24. }
  25.    
  26. public class AddressesPart {
  27.  
  28.   private final String senderAddress;
  29.  
  30.   private final Set recipientToMailAddresses;
  31.  
  32.   private final Set recipientCCMailAdresses;
  33.  
  34.   public AddressesPart(String senderAddress, Set recipientToMailAddresses, Set recipientCCMailAdresses) {
  35.     validate(senderAddress, recipientToMailAddresses, recipientCCMailAdresses);
  36.     this.senderAddress = senderAddress;
  37.     this.recipientToMailAddresses = recipientToMailAddresses;
  38.     this.recipientCCMailAdresses = recipientCCMailAdresses;
  39.   }
  40.  
  41.   private void validate(String senderAddress, Set recipientToMailAddresses, Set recipientCCMailAdresses) {
  42.     AddressValidator addressValidator = new AddressValidator();
  43.     addressValidator.validate(senderAddress);
  44.     addressValidator.validate(recipientToMailAddresses);
  45.     addressValidator.validate(recipientCCMailAdresses);
  46.   }
  47.  
  48.   public String getSenderAddress() {
  49.     return senderAddress;
  50.   }
  51.  
  52.   public Set getRecipientToMailAddresses() {
  53.     return recipientToMailAddresses;
  54.   }
  55.  
  56.   public Set getRecipientCCMailAdresses() {
  57.     return recipientCCMailAdresses;
  58.   }
  59.  
  60. }
  61.    
  62. public class AddressValidator {
  63.  
  64.   private static final String EMAIL_PATTERN
  65.     = "^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$";
  66.  
  67.   public void validate(String address) {
  68.     validate(Collections.singleton(address));
  69.   }
  70.  
  71.   public void validate(Set addresses) {
  72.     Validate.notNull(addresses, "List of mail addresses must not be null");
  73.     for (Iterator it = addresses.iterator(); it.hasNext(); ) {
  74.       String address = (String) it.next();
  75.       Validate.isTrue(address != null && isAddressWellFormed(address), "Invalid Mail address " + address);
  76.     }
  77.   }
  78.  
  79.   private boolean isAddressWellFormed(String address) {
  80.     Pattern emailPattern = Pattern.compile(EMAIL_PATTERN);
  81.     Matcher matcher = emailPattern.matcher(address);
  82.     return matcher.matches();
  83.   }
  84. }
  85.    
  86. public AddressValidator(IValidator myValidator) {
  87.    this.validator = myValidator;
  88. }
  89.    
  90. this.senderAddress = requiresNonNull(senderAddress);
  91.    
  92. this.recipientToMailAddresses = validate(new HashSet<String>(
  93.         recipientToMailAddresses
  94.     ));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement