home *** CD-ROM | disk | FTP | other *** search
- package com.kav.scripting;
-
- import FESI.jslib.JSException;
- import FESI.jslib.JSGlobalObject;
- import FESI.jslib.JSObject;
- import FESI.jslib.JSUtil;
- import com.kav.xsl.ProcessorCallback;
- import com.kav.xsl.ScriptHandler;
- import com.kav.xsl.XSLScript;
- import org.w3c.dom.Node;
-
- public class ECMAScriptHandler implements ScriptHandler {
- public static final String ECMASCRIPT = "ECMAScript";
- private static String[] jsExtensions = new String[]{"FESI.Extensions.JavaAccess", "FESI.Extensions.BasicIO", "FESI.Extensions.OptionalRegExp"};
- JSGlobalObject jsGlobal;
- // $FF: renamed from: pc com.kav.xsl.ProcessorCallback
- ProcessorCallback field_0;
-
- public ECMAScriptHandler() {
- }
-
- public ECMAScriptHandler(ProcessorCallback var1) {
- this.initialize(var1);
- }
-
- public String getLanguage() {
- return "ECMAScript";
- }
-
- public void initialize(ProcessorCallback var1) {
- this.field_0 = var1;
-
- try {
- this.jsGlobal = JSUtil.makeEvaluator(jsExtensions);
- JSObject var2 = this.jsGlobal.makeJSObject();
- this.jsGlobal.setMember("XSLP", var2);
- var2.setMember("addToResultTree", new 1(this));
- var2.setMember("createElement", new 2(this));
- var2.setMember("createText", new 3(this));
- } catch (JSException var3) {
- this.field_0.printError("Unable to create ECMAScript interpreter: " + var3);
- this.field_0.printError("-- xsl:script elements will be ignored.");
- }
- }
-
- public Object eval(XSLScript var1, Node var2) {
- if (this.jsGlobal == null) {
- return null;
- } else {
- JSObject var3 = this.jsGlobal.makeObjectWrapper(var2);
-
- try {
- return var3.eval(var1.getData());
- } catch (JSException var5) {
- return ((Throwable)var5).getMessage();
- }
- }
- }
-
- public Object evalAsFunction(XSLScript var1, Node var2) {
- if (this.jsGlobal == null) {
- return null;
- } else {
- JSObject var3 = this.jsGlobal.makeObjectWrapper(var2);
-
- try {
- return var3.evalAsFunction(var1.getData());
- } catch (JSException var5) {
- return ((Throwable)var5).getMessage();
- }
- }
- }
-
- private void addToResultTree(Object var1) {
- if (this.field_0 != null) {
- if (var1 instanceof Node) {
- this.field_0.addToResultTree((Node)var1);
- }
-
- }
- }
-
- // $FF: synthetic method
- static void access$0(ECMAScriptHandler var0, Object var1) {
- if (var0.field_0 != null && var1 instanceof Node) {
- var0.field_0.addToResultTree((Node)var1);
- }
-
- }
- }
-