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

  1. import netscape.javascript.JSException;
  2. import stardiv.security.JScript2JavaInterface;
  3. import stardiv.security.JavaCallInfo;
  4. import stardiv.security.JavaCallInfoElement;
  5. import stardiv.tools.HoldJavaEnvironment;
  6.  
  7. public class JScriptJavaClass extends JSbxMethod {
  8.    private JScript2JavaInterface aJScriptCaller;
  9.    private JavaCallInfo aJavaCallInfo;
  10.    private int nPropIDCount;
  11.  
  12.    public JavaCallInfo getCallInfo() {
  13.       return this.aJavaCallInfo;
  14.    }
  15.  
  16.    public JScriptJavaClass(JScript2JavaInterface var1, JavaCallInfo var2) {
  17.       super((JScriptConstructor)null);
  18.       this.aJScriptCaller = var1;
  19.       this.aJavaCallInfo = var2;
  20.       this.nPropIDCount = 0;
  21.    }
  22.  
  23.    public JSbxProperty Get(String var1, boolean var2) {
  24.       Object var3 = ((JSbxObject)this).GetNameArray().Get(var1);
  25.       if (var3 == null) {
  26.          JavaCallInfoElement var4;
  27.          if ((var4 = this.aJavaCallInfo.getMethod(var1)) != null && var4.getStaticCount() > 0) {
  28.             JScriptJavaMethod var5 = new JScriptJavaMethod(var1, this.aJScriptCaller, this.aJavaCallInfo);
  29.  
  30.             try {
  31.                var3 = new JSbxValueProperty(var1, this, new JSbxValue(var5), true, false);
  32.                ((JSbxObject)this).Put((JSbxProperty)var3);
  33.             } catch (JSbxException var7) {
  34.             }
  35.          } else if ((var4 = this.aJavaCallInfo.getField(var1)) != null && var4.getStaticCount() > 0) {
  36.             ((JSbxObject)this).GetIndexArray().Put(this.nPropIDCount, var4);
  37.  
  38.             try {
  39.                var3 = new JSbxObjectProperty(var1, this, this, this.nPropIDCount++, false, true);
  40.                ((JSbxObject)this).Put((JSbxProperty)var3);
  41.             } catch (JSbxException var6) {
  42.             }
  43.          }
  44.       }
  45.  
  46.       return (JSbxProperty)var3;
  47.    }
  48.  
  49.    public void Put(int var1, JSbxProperty var2) {
  50.    }
  51.  
  52.    public JSbxProperty Get(int var1, boolean var2) {
  53.       return null;
  54.    }
  55.  
  56.    public JSbxValue CallFunction(JScriptCallParam var1) throws JSbxExceptionBase {
  57.       JScriptJavaMethod var2 = new JScriptJavaMethod("<init>", this.aJScriptCaller, this.aJavaCallInfo);
  58.       JSbxValue var3 = var2.CallFunction(var1);
  59.       return var3;
  60.    }
  61.  
  62.    public JSbxValue PropertyCallFunction(JSbxObjectProperty var1, JScriptCallParam var2) throws JSbxExceptionBase {
  63.       return null;
  64.    }
  65.  
  66.    public void PropertyGet(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  67.       JavaPropertyGet(var1, var2, this, (Object)null, this.aJScriptCaller, this.aJavaCallInfo);
  68.    }
  69.  
  70.    public void PropertyPut(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  71.       JavaPropertyPut(var1, var2, this, (Object)null, this.aJScriptCaller, this.aJavaCallInfo);
  72.    }
  73.  
  74.    public String Property_GetJScript_typeofString(JSbxObjectProperty var1) {
  75.       return "object";
  76.    }
  77.  
  78.    public static void JavaPropertyGet(JSbxObjectProperty var0, JSbxValue var1, JSbxObject var2, Object var3, JScript2JavaInterface var4, JavaCallInfo var5) throws JSbxException {
  79.       var2.GetIndexArray().Get(var0.GetID());
  80.       Object var6 = null;
  81.       boolean var7 = true;
  82.  
  83.       try {
  84.          Object[] var8 = new Object[1];
  85.          var7 = var4.accessJavaField(var8, var3, var5, ((JSbxProperty)var0).GetName(), (Object)null, false);
  86.          var6 = var8[0];
  87.       } catch (JSException var11) {
  88.          HoldJavaEnvironment.AddToProtocol(((Throwable)var11).toString());
  89.       }
  90.  
  91.       Object var12 = null;
  92.  
  93.       try {
  94.          var13 = JSbxValue.convertJava2JScript(var6, var7, var4);
  95.       } catch (Exception var10) {
  96.          throw new JSbxException(0, ((Throwable)var10).getMessage());
  97.       }
  98.  
  99.       var1.Put(var13);
  100.    }
  101.  
  102.    public static void JavaPropertyPut(JSbxObjectProperty var0, JSbxValue var1, JSbxObject var2, Object var3, JScript2JavaInterface var4, JavaCallInfo var5) throws JSbxException {
  103.       var2.GetIndexArray().Get(var0.GetID());
  104.       Object var6 = JSbxValue.convertJScript2Java(var1);
  105.  
  106.       try {
  107.          var4.accessJavaField(var3, var5, ((JSbxProperty)var0).GetName(), var6, true);
  108.       } catch (JSException var8) {
  109.          HoldJavaEnvironment.AddToProtocol(((Throwable)var8).toString());
  110.       }
  111.    }
  112.  
  113.    public String GetJScriptString(boolean var1) {
  114.       return "[JavaClass " + getClassName(this.aJavaCallInfo) + "]";
  115.    }
  116.  
  117.    public static String getClassName(JavaCallInfo var0) {
  118.       return var0.getInfoClass().getName();
  119.    }
  120. }
  121.