home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / filesbbs / os2 / fp1os2.arj / OS2 / DATA / 49 / C / 0 / F_26836 / JScriptJavaMethod.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-15  |  2.5 KB  |  64 lines

  1. import netscape.javascript.JSException;
  2. import stardiv.security.JScript2JavaInterface;
  3. import stardiv.security.JavaCallInfo;
  4. import stardiv.tools.HoldJavaEnvironment;
  5.  
  6. public class JScriptJavaMethod extends JSbxMethod {
  7.    private JScript2JavaInterface aJScriptCaller;
  8.    private JavaCallInfo aJavaCallInfo;
  9.    private Object pJavaThis;
  10.    String aName;
  11.  
  12.    public JScriptJavaMethod(String var1, JScript2JavaInterface var2, JavaCallInfo var3, Object var4) {
  13.       super((JScriptConstructor)null);
  14.       this.aName = var1;
  15.       this.aJScriptCaller = var2;
  16.       this.aJavaCallInfo = var3;
  17.       this.pJavaThis = var4;
  18.    }
  19.  
  20.    public JScriptJavaMethod(String var1, JScript2JavaInterface var2, JavaCallInfo var3) {
  21.       super((JScriptConstructor)null);
  22.       this.aName = var1;
  23.       this.aJScriptCaller = var2;
  24.       this.aJavaCallInfo = var3;
  25.       this.pJavaThis = null;
  26.    }
  27.  
  28.    public JSbxValue CallFunction(JScriptCallParam var1) throws JSbxExceptionBase {
  29.       JSbxVector var2 = var1.GetParamVector();
  30.       int var3 = var2.GetSize();
  31.       Object[] var4 = new Object[var3];
  32.  
  33.       for(int var5 = 0; var5 < var3; ++var5) {
  34.          JSbxValue var6 = (JSbxValue)var2.Get(var5);
  35.          var4[var5] = JSbxValue.convertJScript2Java(var6);
  36.       }
  37.  
  38.       Object var12 = null;
  39.       boolean var7 = true;
  40.  
  41.       try {
  42.          Object[] var8 = new Object[1];
  43.          var7 = this.aJScriptCaller.callJavaMethod(var8, this.pJavaThis, this.aJavaCallInfo, this.aName, var4);
  44.          var12 = var8[0];
  45.       } catch (JSException var11) {
  46.          HoldJavaEnvironment.AddToProtocol(((Throwable)var11).toString());
  47.       }
  48.  
  49.       Object var13 = null;
  50.  
  51.       try {
  52.          JSbxValue var14 = JSbxValue.convertJava2JScript(var12, var7, this.aJScriptCaller);
  53.          var1.GetRuntimeParam().SetReturnValue(var14);
  54.          return var14;
  55.       } catch (Exception var10) {
  56.          throw new JSbxException(0, ((Throwable)var10).getMessage());
  57.       }
  58.    }
  59.  
  60.    public String GetJScriptString(boolean var1) {
  61.       return "[JavaMethod " + JScriptJavaClass.getClassName(this.aJavaCallInfo) + "." + this.aName + "] }";
  62.    }
  63. }
  64.