public void cmdProc()

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);
            }
        }
    }