package edu.umd.rhsmith.diads.meater.core.config.setup.ops.media;
import java.util.Map;
import edu.umd.rhsmith.diads.meater.core.app.components.media.Media;
import edu.umd.rhsmith.diads.meater.core.config.components.ComponentConfig;
import edu.umd.rhsmith.diads.meater.core.config.setup.MEaterSetupConsole;
import edu.umd.rhsmith.diads.meater.core.config.setup.ops.SetupConsoleOperation;
public class SourceListOperation extends SetupConsoleOperation {
private static final String OP_SHORTNAME = "list-provided-sources";
private static final String OP_UINAME = "List all media sources provided by this media path";
private ComponentConfig owner;
public SourceListOperation(ComponentConfig owner) {
super(OP_UINAME, OP_SHORTNAME);
this.owner = owner;
}
@Override
public void go(MEaterSetupConsole setup) {
int idx = 0;
Map<String, Class<?>> ps = this.owner.getMediaSourceTypes();
if (ps.size() == 0) {
setup.getConsole().say(MSG_NO_SRCS);
return;
}
for (String pn : ps.keySet()) {
String name = Media.handlerName(this.owner.getInstanceName(), pn);
setup.getConsole().say(MSG_SRC_LIST_FMT, idx, name, ps.get(pn));
++idx;
}
}
/*
* --------------------------------
* Messages
* --------------------------------
*/
private static final String MSG_SRC_LIST_FMT = "%d) '%s' - produces instances of %s";
private static final String MSG_NO_SRCS = "This component provides no media sources.";
}