private static Map parseArgs()

in agent/src/main/java/com/attachme/agent/Agent.java [13:36]


  private static Map<String, String> parseArgs(String args) {
    if (args == null || args.trim().isEmpty())
      return Collections.emptyMap();
    Set<String> allowed = new HashSet<>(Arrays.asList("port", "host"));
    Map<String, String> ans = new HashMap<>();
    for (String arg : args.split(",")) {
      String[] kv = arg.split(":");
      if (kv.length != 2) {
        throw new IllegalArgumentException("Illegal argument format");
      }
      ans.put(kv[0], kv[1]);
    }
    if (ans.keySet().retainAll(allowed)) {
      throw new IllegalArgumentException("Illegal argument format");
    }
    // Validate the values
    try {
      if (ans.containsKey("port"))
        Integer.parseInt(ans.get("port"));
    } catch (NumberFormatException e) {
      throw new IllegalArgumentException("Illegal port number", e);
    }
    return ans;
  }