docs: public static Map<String, Set<String>> parseAssignment(String data) {
          Map<String, Set<String>> ret = new HashMap<>();
          if (data != null) {
              StringTokenizer stringTokenizer = new StringTokenizer(data, String.format("%s%s%s", EQUALITY, COMMA, SEMICOLON), true);
              String key = null;
              Set<String> value = new HashSet<>();
              int counter = 0;
              while (stringTokenizer.hasMoreTokens()) {
                  String token = stringTokenizer.nextToken();
                  if (isValueDelimiter(token)) {
                      continue;
                  } else if (isKeyDelimiter(token) && key != null) {
                      ret.put(key, value);
                      counter = 0;
                      key = null;
                      value = new HashSet<>();
                      continue;
                  } else if (counter == 0) {
                      key = token.trim();
                  } else {
                      String trimmedValue = token.trim();
                      if (!StringUtils.isEmpty(trimmedValue)) {
                          value.add(trimmedValue);
                      }
                  }
                  counter++;
              }
              if (key != null) {
                  ret.put(key, value);
              }
          }
          return ret;
      }