package edu.umd.rhsmith.diads.meater.core.config.setup.ops.module;
import edu.umd.rhsmith.diads.meater.core.config.ConfigModule;
import edu.umd.rhsmith.diads.meater.core.config.MEaterConfig;
import edu.umd.rhsmith.diads.meater.core.config.setup.MEaterSetupConsole;
import edu.umd.rhsmith.diads.meater.core.config.setup.ops.SetupConsoleOperation;
public class ListModulesOperation extends SetupConsoleOperation {
public static final String OP_SHORTNAME = "list-modules";
public static final String OP_UINAME = "List loaded modules";
private final MEaterConfig owner;
public ListModulesOperation(MEaterConfig owner) {
super(OP_UINAME, OP_SHORTNAME);
this.owner = owner;
}
@Override
public void go(MEaterSetupConsole setup) {
if (this.owner.getNumModules() == 0) {
setup.getConsole().say(MSG_NO_MODULES);
return;
}
int idx = 0;
for (ConfigModule m : this.owner.getModules()) {
setup.getConsole().say(MSG_MODULE_NAME_FMT, idx, m.getModuleName(),
m.getUiName());
++idx;
}
}
/*
* --------------------------------
* Messages
* --------------------------------
*/
private static final String MSG_MODULE_NAME_FMT = "%d) %s: %s";
private static final String MSG_NO_MODULES = "(no loaded modules)";
}