code: protected String getToNames() {
  
          List<String> excluded = new ArrayList<String>();
          List<String> users = new ArrayList<String>();
          Iterator<String> itGroups = getGroups().iterator();
          while (itGroups.hasNext()) {
              String groupName = itGroups.next();
              try {
                  Iterator<CmsUser> itUsers = getCms().getUsersOfGroup(groupName, true).iterator();
                  while (itUsers.hasNext()) {
                      CmsUser user = itUsers.next();
                      String userName = user.getFullName();
                      if (!users.contains(userName)) {
                          String emailAddress = user.getEmail();
                          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(emailAddress)) {
                              users.add(userName);
                          } else {
                              excluded.add(userName);
                          }
                      }
                  }
              } catch (Exception e) {
                  LOG.error(e.getLocalizedMessage(), e);
              }
          }
          if (!excluded.isEmpty()) {
              StringBuffer text = new StringBuffer(500);
              text.append(Messages.get().container(Messages.GUI_EXCLUDED_USERS_WARNING_0).key(getLocale()));
              text.append("<br>");
              Iterator<String> it = excluded.iterator();
              while (it.hasNext()) {
                  text.append("- ");
                  text.append(it.next());
                  text.append("<br>");
              }
              setExcludedUsers(text.toString());
          }
          if (users.isEmpty()) {
              setCommitErrors(
                  Collections.singletonList((Throwable)new CmsIllegalStateException(
                      Messages.get().container(Messages.ERR_NO_SELECTED_USER_WITH_EMAIL_0))));
              return "";
          }
          StringBuffer result = new StringBuffer(256);
          Iterator<String> itUsers = users.iterator();
          while (itUsers.hasNext()) {
              result.append(itUsers.next().toString());
              if (itUsers.hasNext()) {
                  result.append("; ");
              }
          }
          return result.toString();
      }
docs: Returns a semicolon separated list of user names.<p>
  
  @return a semicolon separated list of user names