package com.redhat.ceylon.common.tool;
import java.lang.reflect.Method;
/**
* Model of a command line argument accepted by a plugin
* @author tom
* @param <A>
*/
public class ArgumentModel<A> {
private ToolModel<?> toolModel;
private Method setter;
private Class<A> type;
private String argumentName;
private Multiplicity multiplicity;
private OptionModel<A> option;
private ArgumentParser<A> parser;
public ToolModel<?> getToolModel() {
return toolModel;
}
public void setToolModel(ToolModel<?> toolModel) {
this.toolModel = toolModel;
}
public Multiplicity getMultiplicity() {
return multiplicity;
}
public void setMultiplicity(Multiplicity multiplicity) {
this.multiplicity = multiplicity;
}
public Method getSetter() {
return setter;
}
public void setSetter(Method setter) {
this.setter = setter;
}
public ArgumentParser<A> getParser() {
return parser;
}
public void setParser(ArgumentParser<A> parser) {
this.parser = parser;
}
public Class<A> getType() {
return type;
}
public void setType(Class<A> type) {
this.type = type;
}
public String getName() {
return argumentName;
}
public void setName(String name) {
this.argumentName = name;
}
public OptionModel<A> getOption() {
return option;
}
public void setOption(OptionModel<A> option) {
this.option = option;
}
public String toString() {
return option != null ? option + "'s argument" : "argument " + argumentName;
}
}