public ExplicitArtifactArguments(Logger logger, List<String> args, boolean offline, boolean download) {
      super(logger, offline);
      checkArgument(!args.isEmpty(), "Must specify groupId:artifactId[:version]");
      this.requestedArtifact = args.get(0);
      if (download) {
        this.mainClassName = "";
        this.args = new LinkedList<String>();
      } else {
        checkArgument(args.size() >= 2, "Must specify groupId:artifactId[:version] and a main class name!");
        this.mainClassName = args.get(1);
        this.args = args.subList(2, args.size());
      }
    }