in src/main/java/org/apache/bsf/engines/jacl/BSFCommand.java [42:97]
public void cmdProc(final Interp interp, final TclObject argv[]) throws TclException {
if (argv.length < 2) {
interp.setResult("invalid # of args; usage: bsf " + "lookupBean|registerBean|unregisterBean|addEventListener args");
throw new TclException(TCL.ERROR);
}
final String op = argv[1].toString();
if (op.equals("lookupBean")) {
if (argv.length != 3) {
interp.setResult("invalid # of args; usage: bsf " + "lookupBean name-of-bean");
throw new TclException(TCL.ERROR);
}
final String beanName = argv[2].toString();
final Object bean = mgr.lookupBean(beanName);
if (bean == null) {
interp.setResult("unknown object: " + beanName);
throw new TclException(TCL.ERROR);
}
interp.setResult(ReflectObject.newInstance(interp, bean.getClass(), bean));
} else if (op.equals("registerBean")) {
if (argv.length != 4) {
interp.setResult("invalid # of args; usage: bsf " + "registerBean name-of-bean bean");
throw new TclException(TCL.ERROR);
}
mgr.registerBean(argv[2].toString(), ReflectObject.get(interp, argv[3]));
interp.setResult("");
} else if (op.equals("unregisterBean")) {
if (argv.length != 3) {
interp.setResult("invalid # of args; usage: bsf " + "unregisterBean name-of-bean");
throw new TclException(TCL.ERROR);
}
mgr.unregisterBean(argv[2].toString());
interp.setResult("");
} else if (op.equals("addEventListener")) {
if (argv.length != 6) {
interp.setResult("invalid # of args; usage: bsf " + "addEventListener object event-set-name filter " + "script-to-run");
throw new TclException(TCL.ERROR);
}
try {
// usage: bsf addEventListener object event-set filter script
String filter = argv[4].toString();
filter = filter.equals("") ? null : filter;
EngineUtils.addEventListener(ReflectObject.get(interp, argv[2]), argv[3].toString(), filter, jengine, mgr, "<event-script>", 0, 0,
argv[5].toString());
} catch (final BSFException e) {
e.printStackTrace();
interp.setResult("got BSF exception: " + e.getMessage());
throw new TclException(TCL.ERROR);
}
}
}