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

📄 javascriptrunnertest.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.core.macro.runner;

import java.util.Collection;
import java.util.HashSet;

import junit.framework.TestCase;
import cn.myapps.base.action.ParamsTable;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.dynaform.document.ejb.DocumentProcessBean;
import cn.myapps.core.macro.repository.ejb.RepositoryProcess;
import cn.myapps.core.macro.repository.ejb.RepositoryProcessBean;
import cn.myapps.core.macro.repository.ejb.RepositoryVO;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.util.ProcessFactory;

public class JavaScriptRunnerTest extends TestCase {

	protected void setUp() throws Exception {
		super.setUp();
	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}

	/*
	 * Test method for
	 * 'cn.myapps.core.macro.runner.JavaScriptRunner.run(String)'
	 */
	public void testRun() throws Exception {
		Document doc = null;

		DocumentProcessBean dp = new DocumentProcessBean();
		doc = (Document) dp.doView("1161831168796002");

		RepositoryProcessBean rp = new RepositoryProcessBean();
		RepositoryVO ry = (RepositoryVO) rp.doView("1155560754666000");

		ParamsTable params = new ParamsTable();
		UserVO uv = new UserVO();
		WebUser user = new WebUser(uv);
		Collection errors = new HashSet();
		JavaScriptRunner jsrun = JavaScriptRunner.getInstance();
		jsrun.initBSFManager(doc, params, user, errors, "");
		/*
		 * String valuescript=" var rtn = \"ERROR!\"; var doc =
		 * $CURRDOC.getCurrDoc(); " + "if (doc!=null) { var item =
		 * doc.findItem(\"field1\"); " + "if (item!=null) { rtn =
		 * item.getValue(); } } rtn;";
		 * 
		 * String valuescript1=" var rtn = \"ERROR!\"; var doc =
		 * $CURRDOC.getCurrDoc(); " + "if (doc!=null) { var item =
		 * doc.getClass().getName(); " + "if (item!=null) { rtn = item } }
		 * rtn;";
		 * 
		 * String valuescript2=" function
		 * helloworld(){$PRINTER.println(\"peng77804\");};helloworld()"; String
		 * valuescript3=" $PRINTER.println(\"peng\"); ";
		 */

		// String script=ry.getContent();
		// String
		// script="$RepositoryProcess.doView(\"1155560754666000\").getContent()";
		// String valuescript2=" function square(a){ return a*a;};square(8);";
		// String valuescript3=" function square(a){ return a*a;};function
		// add(c,d){return c+d;}; function test(){var rtn =
		// \"ERROR!\";rtn=add(7,8)*square(2); return rtn;};test();";
		// String c=" function add(a,b){return a+b;};function square(a){return
		// a*a;};function test(){var rtn = \"ERROR!\";rtn=add(7,8); return
		// rtn;};test();";
		// String valuescript=" #include \"add\" #include \"square\" " +
		// "function test(){var rtn = \"ERROR!\";rtn=add(10,5)*square(2); return
		// rtn;}test()";
		String valuescript = "      #include      \"add\" #include      \"add\"      #include\"square\" "
				+ "var rtn = \"ERROR!\";rtn=add(10,5)*square(2);  $PRINTER.println(\"result-->>\"+rtn)";
		// String js=exp(valuescript);
		Object result = jsrun.run(valuescript);
		System.out.print(result);
	}

	public String exp(String js) throws Exception {

		if (js.indexOf("#include") != -1) {
			String Content = js;
			HashSet set = new HashSet();
			while (Content.indexOf("#include") != -1) {
				String funname = null;
				int k = 0, t = 0, e = 0;

				k = Content.indexOf("#include");
				t = Content.indexOf("\"", k + 8);
				e = Content.indexOf("\"", t + 1);
				funname = Content.substring(t + 1, e);

				if (!set.contains(funname)) {
					RepositoryProcess rp = (RepositoryProcess) ProcessFactory
							.createProcess(RepositoryProcess.class);
					RepositoryVO rpvo = rp.getRepositoryByName(funname, "");
					if (rpvo != null)
						Content += rpvo.getContent();
					set.add(funname);
				}
				String st = Content.substring(0, k);
				String ed = Content.substring(e + 1, Content.length());
				Content = st + ed;
			}
			js = Content;
		}

		return js;
	}

}

⌨️ 快捷键说明

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