public void processExceptionableEvent(String inFilter,
Object[] evtInfo) throws Exception {
// System.err.println(this+": inFilter=["+inFilter+"],
// filter=["+filter+"]");
if ((filter != null) && !filter.equals(inFilter)) {
// ignore this event
return;
}
// run the script
// engine.exec (source, lineNo, columnNo, script);
// create the parameter vectors for engine.apply()
Vector paramNames = new Vector(), paramValues = new Vector();
// parameter # 1
// supply the parameters as an array object as sent to the event object
// listener
// (usually the first entry is the sent event object)
paramNames.add("eventParameters");
paramValues.add(evtInfo);
// parameter # 2
// supply the data object received from the scripting engine to be sent
// with the event
paramNames.add("dataFromScriptingEngine");
paramValues.add(this.dataFromScriptingEngine); // can be null as well
// parameter # 3
// event filter in place
paramNames.add("inFilter");
paramValues.add(inFilter); // event name that has occurred
// parameter # 4
// event filter in place
paramNames.add("eventFilter");
paramValues.add(this.filter); // can be null as well
// parameter # 5
// BSF manager instance (e.g. allows access to its registry)
paramNames.add("BSFManager");
paramValues.add(this.manager);
engine.apply(source, lineNo, columnNo, this.script, paramNames,
paramValues);
}
|