home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / kav / scripting / ECMAScriptHandler.class (.txt) next >
Encoding:
Java Class File  |  1999-05-16  |  2.6 KB  |  91 lines

  1. package com.kav.scripting;
  2.  
  3. import FESI.jslib.JSException;
  4. import FESI.jslib.JSGlobalObject;
  5. import FESI.jslib.JSObject;
  6. import FESI.jslib.JSUtil;
  7. import com.kav.xsl.ProcessorCallback;
  8. import com.kav.xsl.ScriptHandler;
  9. import com.kav.xsl.XSLScript;
  10. import org.w3c.dom.Node;
  11.  
  12. public class ECMAScriptHandler implements ScriptHandler {
  13.    public static final String ECMASCRIPT = "ECMAScript";
  14.    private static String[] jsExtensions = new String[]{"FESI.Extensions.JavaAccess", "FESI.Extensions.BasicIO", "FESI.Extensions.OptionalRegExp"};
  15.    JSGlobalObject jsGlobal;
  16.    // $FF: renamed from: pc com.kav.xsl.ProcessorCallback
  17.    ProcessorCallback field_0;
  18.  
  19.    public ECMAScriptHandler() {
  20.    }
  21.  
  22.    public ECMAScriptHandler(ProcessorCallback var1) {
  23.       this.initialize(var1);
  24.    }
  25.  
  26.    public String getLanguage() {
  27.       return "ECMAScript";
  28.    }
  29.  
  30.    public void initialize(ProcessorCallback var1) {
  31.       this.field_0 = var1;
  32.  
  33.       try {
  34.          this.jsGlobal = JSUtil.makeEvaluator(jsExtensions);
  35.          JSObject var2 = this.jsGlobal.makeJSObject();
  36.          this.jsGlobal.setMember("XSLP", var2);
  37.          var2.setMember("addToResultTree", new 1(this));
  38.          var2.setMember("createElement", new 2(this));
  39.          var2.setMember("createText", new 3(this));
  40.       } catch (JSException var3) {
  41.          this.field_0.printError("Unable to create ECMAScript interpreter: " + var3);
  42.          this.field_0.printError("-- xsl:script elements will be ignored.");
  43.       }
  44.    }
  45.  
  46.    public Object eval(XSLScript var1, Node var2) {
  47.       if (this.jsGlobal == null) {
  48.          return null;
  49.       } else {
  50.          JSObject var3 = this.jsGlobal.makeObjectWrapper(var2);
  51.  
  52.          try {
  53.             return var3.eval(var1.getData());
  54.          } catch (JSException var5) {
  55.             return ((Throwable)var5).getMessage();
  56.          }
  57.       }
  58.    }
  59.  
  60.    public Object evalAsFunction(XSLScript var1, Node var2) {
  61.       if (this.jsGlobal == null) {
  62.          return null;
  63.       } else {
  64.          JSObject var3 = this.jsGlobal.makeObjectWrapper(var2);
  65.  
  66.          try {
  67.             return var3.evalAsFunction(var1.getData());
  68.          } catch (JSException var5) {
  69.             return ((Throwable)var5).getMessage();
  70.          }
  71.       }
  72.    }
  73.  
  74.    private void addToResultTree(Object var1) {
  75.       if (this.field_0 != null) {
  76.          if (var1 instanceof Node) {
  77.             this.field_0.addToResultTree((Node)var1);
  78.          }
  79.  
  80.       }
  81.    }
  82.  
  83.    // $FF: synthetic method
  84.    static void access$0(ECMAScriptHandler var0, Object var1) {
  85.       if (var0.field_0 != null && var1 instanceof Node) {
  86.          var0.field_0.addToResultTree((Node)var1);
  87.       }
  88.  
  89.    }
  90. }
  91.