private Collection mergeArgumentValues()

in gradle-runner-agent/src/main/java/jetbrains/buildServer/gradle/runtime/service/jvmargs/GradleJvmArgsMerger.java [104:128]


  private Collection<String> mergeArgumentValues(@NotNull String argKey,
                                                 @NotNull Collection<String> argValues) {
    Collection<String> merged = new ArrayList<>();

    Map<String, String> compositeValues = new LinkedHashMap<>();
    String lastSingleValue = null;
    for (String argValue : argValues) {
      if (argValue.isEmpty()) {
        continue;
      }
      if (isCompositeValue(argValue) || JvmArg.isPackageAccessibilityJvmArg(argKey)) {
        JvmArg composite = JvmArg.ofString(argValue);
        compositeValues.put(composite.getKey(), composite.getValue());
      } else {
        lastSingleValue = argValue;
      }
    }

    compositeValues.forEach((key, value) -> merged.add(key + value));
    if (lastSingleValue != null) {
      merged.add(lastSingleValue);
    }

    return merged;
  }