@@ -0,0 +1,2028 @@
+package droplauncher.util;%0A%0Aimport adakite.debugging.Debugging;%0Aimport java.nio.file.Path;%0Aimport java.util.ArrayList;%0A%0A/**%0A * Class for building objects to pass to process objects such as ProcessBuilder.%0A */%0Apublic class CommandBuilder %7B%0A%0A  private Path path;%0A  private ArrayList%3CString%3E args;%0A%0A  public CommandBuilder() %7B%0A    this.path = null;%0A    this.args = new ArrayList%3C%3E();%0A  %7D%0A%0A  /**%0A   * Returns the path to the executable.%0A   */%0A  public Path getPath() %7B%0A    return this.path;%0A  %7D%0A%0A  /**%0A   * Sets the path to the specified executable.%0A   *%0A   * @param path path to the specified executable%0A   */%0A  public void setPath(Path path) %7B%0A    if (path == null) %7B%0A      throw new IllegalArgumentException(Debugging.nullObject(%22path%22));%0A    %7D%0A    this.path = path;%0A  %7D%0A%0A  public void addArg(String arg) %7B%0A    if (arg == null) %7B%0A      throw new IllegalArgumentException(Debugging.emptyString(%22arg%22));%0A    %7D%0A    this.args.add(arg);%0A  %7D%0A%0A  /**%0A   * Returns the argument list as a String array.%0A   */%0A  public String%5B%5D getArgs() %7B%0A    if (this.args.size() %3C 1) %7B%0A      return new String%5B%5D%7B%7D;%0A    %7D%0A    String%5B%5D args = new String%5Bthis.args.size()%5D;%0A    for (int i = 0; i %3C this.args.size(); i++) %7B%0A      args%5Bi%5D = this.args.get(i);%0A    %7D%0A    return args;%0A  %7D%0A%0A  /**%0A   * Returns a String array of the command and args.%0A   */%0A  public String%5B%5D get() %7B%0A    if (this.path == null) %7B%0A      throw new IllegalStateException(Debugging.nullObject(%22path%22));%0A    %7D%0A    String%5B%5D command = new String%5B1 + this.args.size()%5D;%0A    command%5B0%5D = this.path.toString();%0A    for (int i = 0; i %3C this.args.size(); i++) %7B%0A      command%5Bi + 1%5D = this.args.get(i);%0A    %7D%0A    return command;%0A  %7D%0A%0A  /**%0A   * Returns the command and args as one string.%0A   */%0A  @Override%0A  public String toString() %7B%0A    StringBuilder sb = new StringBuilder();%0A    if (this.path == null) %7B%0A      sb.append(%22null%22);%0A    %7D else %7B%0A      sb.append(this.path.toString());%0A    %7D%0A    for (String arg : this.args) %7B%0A      sb.append(%22 %22 + arg);%0A    %7D%0A    return sb.toString();%0A  %7D%0A%0A%7D%0A

Add file CommandBuilder.java