package org.wikibrain.loader.pipeline;
import org.wikibrain.utils.WbCommandLine;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
/**
*
* Represents user-specified stage arguments that
* determine which stages to run and override configuration defaults.
* @author Shilad Sen
*/
public class StageArgs {
private final String stageName;
private boolean shouldRun = true;
private String [] args = null;
public StageArgs(String opts) {
String tokens[] = opts.split(":", 3); // "stage:{on|off}:args
stageName = tokens[0];
if (tokens.length >= 2) {
if (!Arrays.asList("on", "off").contains(tokens[1])) {
throw new IllegalArgumentException("arg format for -s is stagename:{on|off}[:args]");
}
shouldRun = tokens[1].equals("on");
}
if (tokens.length == 3) {
args = WbCommandLine.translateCommandline(tokens[2]);
}
}
public StageArgs(String stageName, boolean shouldRun, String[] args) {
this.stageName = stageName;
this.shouldRun = shouldRun;
this.args = args;
}
public StageArgs copyWithName(String newStageName) {
return new StageArgs(newStageName, shouldRun, args);
}
public String getStageName() {
return stageName;
}
public boolean isShouldRun() {
return shouldRun;
}
public String[] getArgs() {
return args;
}
}