code: @NotNull
      public static Map<String, String> toMap(@Nullable final String stringMap, @NotNull final String pairDelimiter, @NotNull final String keyValueDelimiter) {
          Map<String, String> theMap = new HashMap<>();
          for (final String pairStr : toArray(stringMap, pairDelimiter)) {
              final String[] arrayPair = toArray(pairStr, keyValueDelimiter);
              if (arrayPair.length != 2 && arrayPair.length != 0) {
                  throw new IllegalArgumentException(pairStr + ExceptionValues.EXCEPTION_DELIMITER + ExceptionValues.INVALID_KEY_VALUE_PAIR);
              } else if (arrayPair.length == 2) {
                  theMap.put(arrayPair[0], arrayPair[1]);
              }
          }
          return theMap;
      }
docs: Splits a stringMap in the format key1<keyValueDelimiter>value1 <pairDelimiter> key2<keyValueDelimiter>value2 ... into a Map<String, String>
  
  @param stringMap         the string to be split
  @param pairDelimiter     the delimiter between pairs of key, value
  @param keyValueDelimiter the delimiter between the key and it's corresponding value
  @return a Map<String, String> from the specified stringMap with the specified delimiters
  @throws IllegalArgumentException if the stringMap doesn't respect the specified format