⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsfcommand.java

📁 Bean Scripting Framework (BSF)为在java应用中使用脚本语言
💻 JAVA
字号:
/* * Copyright 2004,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.bsf.engines.jacl;import org.apache.bsf.BSFEngine;import org.apache.bsf.BSFException;import org.apache.bsf.BSFManager;import org.apache.bsf.util.EngineUtils;import tcl.lang.Command;import tcl.lang.Interp;import tcl.lang.ReflectObject;import tcl.lang.TCL;import tcl.lang.TclException;import tcl.lang.TclObject;// class used to add "bsf" command to the Jacl runtimeclass BSFCommand implements Command {  BSFManager mgr;  BSFEngine jengine;  BSFCommand (BSFManager mgr, BSFEngine jengine) {	this.mgr = mgr;	this.jengine = jengine;  }  public void cmdProc (Interp interp, 		       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);	}	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);	  }	  String beanName = argv[2].toString ();	  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 (BSFException e) {	e.printStackTrace ();	interp.setResult ("got BSF exception: " + e.getMessage ());	throw new TclException (TCL.ERROR);	  }	}  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -