package edu.umd.rhsmith.diads.meater.core.config.setup.ops.instance;
import edu.umd.rhsmith.diads.meater.core.config.container.InstanceConfig;
import edu.umd.rhsmith.diads.meater.core.config.container.InstanceConfigContainer;
import edu.umd.rhsmith.diads.meater.core.config.setup.MEaterSetupConsole;
import edu.umd.rhsmith.diads.meater.core.config.setup.ops.SetupConsoleOperation;
public class ListInstanceTypesOperation<I extends InstanceConfig> extends
SetupConsoleOperation {
public static final String OP_SHORTNAME = "list-instance-types";
public static final String OP_UINAME = "List all instance types provided by current unit";
private final InstanceConfigContainer<I> owner;
public ListInstanceTypesOperation(InstanceConfigContainer<I> owner) {
super(OP_UINAME, OP_SHORTNAME);
this.owner = owner;
}
@Override
public void go(MEaterSetupConsole setup) {
int idx = 0;
for (String typeName : this.owner.getInstanceConfigTypeNames()) {
setup.getConsole().say(MSG_LIST_FMT, idx, typeName);
String description = this.owner.getConfigTypeDescription(typeName);
if (description != null && !description.isEmpty()) {
setup.getConsole().pushIndent(1);
setup.getConsole().say(description);
setup.getConsole().popIndent();
}
++idx;
}
}
/*
* --------------------------------
* Messages
* --------------------------------
*/
}