package mil.nga.giat.geowave.core.cli.parser;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import mil.nga.giat.geowave.core.cli.api.Operation;
import mil.nga.giat.geowave.core.cli.api.OperationParams;
import mil.nga.giat.geowave.core.cli.prefix.PrefixedJCommander;
public class CommandLineOperationParams implements
OperationParams
{
private final Map<String, Object> context = new HashMap<String, Object>();
private final Map<String, Operation> operationMap = new LinkedHashMap<String, Operation>();
private final String[] args;
private PrefixedJCommander commander;
private boolean validate = true;
private boolean allowUnknown = false;
private boolean commandPresent;
private int successCode = 0;
private String successMessage;
private Throwable successException;
public CommandLineOperationParams(
String[] args ) {
this.args = args;
}
public String[] getArgs() {
return this.args;
}
/**
* Implement parent interface to retrieve operations
*/
@Override
public Map<String, Operation> getOperationMap() {
return operationMap;
}
@Override
public Map<String, Object> getContext() {
return this.context;
}
public PrefixedJCommander getCommander() {
return this.commander;
}
public void setValidate(
boolean validate ) {
this.validate = validate;
}
public void setAllowUnknown(
boolean allowUnknown ) {
this.allowUnknown = allowUnknown;
}
public boolean isValidate() {
return validate;
}
public boolean isAllowUnknown() {
return this.allowUnknown;
}
public void setCommander(
PrefixedJCommander commander ) {
this.commander = commander;
}
public void addOperation(
String name,
Operation operation,
boolean isCommand ) {
commandPresent |= isCommand;
this.operationMap.put(
name,
operation);
}
public boolean isCommandPresent() {
return commandPresent;
}
public int getSuccessCode() {
return successCode;
}
public void setSuccessCode(
int successCode ) {
this.successCode = successCode;
}
public String getSuccessMessage() {
return successMessage;
}
public void setSuccessMessage(
String successMessage ) {
this.successMessage = successMessage;
}
public Throwable getSuccessException() {
return successException;
}
public void setSuccessException(
Throwable successException ) {
this.successException = successException;
}
}