/**
   * Parse the headerValue and delegate to {@link #getDisplayAddress(Mailbox)}
   *
   * <p>If no display address is found an empty String is returned
   *
   * @param headerValue
   * @return display
   */
  public static String getDisplayAddress(String headerValue) {
    AddressList addressList =
        LenientAddressParser.DEFAULT.parseAddressList(MimeUtil.unfold(headerValue));
    if (addressList != null && addressList.isEmpty() == false) {
      Address address = addressList.get(0);
      if (address instanceof Mailbox) {
        return getDisplayAddress((Mailbox) address);
      } else if (address instanceof Group) {
        Group group = (Group) address;
        if (group != null) {
          MailboxList mList = group.getMailboxes();
          if (mList != null && mList.isEmpty() == false) {
            return getDisplayAddress(mList.get(0));
          }
        }
      }
    }

    return "";
  }
 /**
  * Parse the headerValue and delegate to {@link #getMailboxAddress(Mailbox)}
  *
  * <p>If no mailbox name is found an empty String is returned
  *
  * @param headerValue
  * @return mailbox
  */
 public static String getMailboxAddress(String headerValue) {
   AddressList aList = LenientAddressParser.DEFAULT.parseAddressList(headerValue);
   for (Address address : aList) {
     if (address instanceof Mailbox) {
       Mailbox m = (Mailbox) address;
       String mailboxName = m.getLocalPart();
       if (mailboxName == null) {
         mailboxName = "";
       }
       return mailboxName;
     } else if (address instanceof Group) {
       MailboxList mList = ((Group) address).getMailboxes();
       for (int a = 0; a < mList.size(); ) {
         String mailboxName = mList.get(a).getLocalPart();
         if (mailboxName == null) {
           mailboxName = "";
         }
         return mailboxName;
       }
     }
   }
   return "";
 }