home *** CD-ROM | disk | FTP | other *** search
- import netscape.javascript.JSException;
- import stardiv.security.JScript2JavaInterface;
- import stardiv.security.JavaCallInfo;
- import stardiv.tools.HoldJavaEnvironment;
-
- public class JScriptJavaMethod extends JSbxMethod {
- private JScript2JavaInterface aJScriptCaller;
- private JavaCallInfo aJavaCallInfo;
- private Object pJavaThis;
- String aName;
-
- public JScriptJavaMethod(String var1, JScript2JavaInterface var2, JavaCallInfo var3, Object var4) {
- super((JScriptConstructor)null);
- this.aName = var1;
- this.aJScriptCaller = var2;
- this.aJavaCallInfo = var3;
- this.pJavaThis = var4;
- }
-
- public JScriptJavaMethod(String var1, JScript2JavaInterface var2, JavaCallInfo var3) {
- super((JScriptConstructor)null);
- this.aName = var1;
- this.aJScriptCaller = var2;
- this.aJavaCallInfo = var3;
- this.pJavaThis = null;
- }
-
- public JSbxValue CallFunction(JScriptCallParam var1) throws JSbxExceptionBase {
- JSbxVector var2 = var1.GetParamVector();
- int var3 = var2.GetSize();
- Object[] var4 = new Object[var3];
-
- for(int var5 = 0; var5 < var3; ++var5) {
- JSbxValue var6 = (JSbxValue)var2.Get(var5);
- var4[var5] = JSbxValue.convertJScript2Java(var6);
- }
-
- Object var12 = null;
- boolean var7 = true;
-
- try {
- Object[] var8 = new Object[1];
- var7 = this.aJScriptCaller.callJavaMethod(var8, this.pJavaThis, this.aJavaCallInfo, this.aName, var4);
- var12 = var8[0];
- } catch (JSException var11) {
- HoldJavaEnvironment.AddToProtocol(((Throwable)var11).toString());
- }
-
- Object var13 = null;
-
- try {
- JSbxValue var14 = JSbxValue.convertJava2JScript(var12, var7, this.aJScriptCaller);
- var1.GetRuntimeParam().SetReturnValue(var14);
- return var14;
- } catch (Exception var10) {
- throw new JSbxException(0, ((Throwable)var10).getMessage());
- }
- }
-
- public String GetJScriptString(boolean var1) {
- return "[JavaMethod " + JScriptJavaClass.getClassName(this.aJavaCallInfo) + "." + this.aName + "] }";
- }
- }
-