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

  1. import java.io.FileNotFoundException;
  2. import stardiv.classfile.ClassFormatException;
  3. import stardiv.security.JScript2JavaInterface;
  4. import stardiv.security.JavaCallInfo;
  5. import stardiv.security.JavaCallInfoElement;
  6.  
  7. public class JScriptJavaObject extends JSbxObject implements JSbxPropertyInterface {
  8.    private static String LENGTH_NAME = "length";
  9.    private Object aJavaObject;
  10.    private JScript2JavaInterface aJScriptCaller;
  11.    private JavaCallInfo aJavaCallInfo;
  12.    private boolean bJavaArray;
  13.    private int nPropIDCount;
  14.  
  15.    private JavaCallInfo GetJavaCallInfo() {
  16.       if (this.aJavaCallInfo == null) {
  17.          try {
  18.             this.aJavaCallInfo = JavaCallInfo.get(this.aJavaObject.getClass());
  19.          } catch (FileNotFoundException var1) {
  20.          } catch (ClassFormatException var2) {
  21.          } catch (ClassNotFoundException var3) {
  22.          }
  23.       }
  24.  
  25.       return this.aJavaCallInfo;
  26.    }
  27.  
  28.    public JScriptJavaObject(Object var1, JScript2JavaInterface var2, boolean var3) throws FileNotFoundException, ClassFormatException, ClassNotFoundException {
  29.       this.aJavaObject = var1;
  30.       this.aJScriptCaller = var2;
  31.       this.bJavaArray = var3;
  32.       if (this.bJavaArray && !(this.aJavaObject instanceof Object[])) {
  33.          this.bJavaArray = false;
  34.       }
  35.  
  36.       this.nPropIDCount = 0;
  37.       this.aJavaCallInfo = null;
  38.       if (this.bJavaArray) {
  39.          Object[] var4 = this.aJavaObject;
  40.  
  41.          try {
  42.             JSbxValueProperty var5 = new JSbxValueProperty(LENGTH_NAME, this, new JSbxValue((double)var4.length));
  43.             ((JSbxObject)this).Put(var5);
  44.          } catch (JSbxException var6) {
  45.          }
  46.       }
  47.    }
  48.  
  49.    public JScriptJavaObject(Object var1, JScript2JavaInterface var2) throws FileNotFoundException, ClassFormatException, ClassNotFoundException {
  50.       this(var1, var2, false);
  51.    }
  52.  
  53.    public JScriptJavaObject(Object var1) throws FileNotFoundException, ClassFormatException, ClassNotFoundException {
  54.       this(var1, JScriptManager.GetMyJScriptManager().getSecureJScriptCalling(), false);
  55.    }
  56.  
  57.    public JSbxProperty Get(String var1, boolean var2) {
  58.       Object var3 = ((JSbxObject)this).GetNameArray().Get(var1);
  59.       if (var3 == null) {
  60.          JavaCallInfo var4 = this.GetJavaCallInfo();
  61.          if (var4.getMethod(var1) != null) {
  62.             JScriptJavaMethod var6 = new JScriptJavaMethod(var1, this.aJScriptCaller, var4, this.aJavaObject);
  63.  
  64.             try {
  65.                var3 = new JSbxValueProperty(var1, this, new JSbxValue(var6), true, false);
  66.                ((JSbxObject)this).Put((JSbxProperty)var3);
  67.             } catch (JSbxException var8) {
  68.             }
  69.          } else {
  70.             JavaCallInfoElement var5;
  71.             if ((var5 = var4.getField(var1)) != null) {
  72.                ((JSbxObject)this).GetIndexArray().Put(this.nPropIDCount, var5);
  73.  
  74.                try {
  75.                   var3 = new JSbxObjectProperty(var1, this, this, this.nPropIDCount++, false, true);
  76.                   ((JSbxObject)this).Put((JSbxProperty)var3);
  77.                } catch (JSbxException var7) {
  78.                }
  79.             }
  80.          }
  81.       }
  82.  
  83.       return (JSbxProperty)var3;
  84.    }
  85.  
  86.    public void Put(int var1, JSbxProperty var2) {
  87.    }
  88.  
  89.    public JSbxProperty Get(int var1, boolean var2) {
  90.       if (this.bJavaArray) {
  91.          Object[] var3 = this.aJavaObject;
  92.          return var1 >= 0 && var1 < var3.length ? new JSbxObjectProperty(String.valueOf(var1), this, this, var1, false, true) : null;
  93.       } else {
  94.          return null;
  95.       }
  96.    }
  97.  
  98.    public JSbxValue PropertyCallFunction(JSbxObjectProperty var1, JScriptCallParam var2) throws JSbxExceptionBase {
  99.       return null;
  100.    }
  101.  
  102.    public void PropertyGet(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  103.       if (this.bJavaArray) {
  104.          Object[] var7 = this.aJavaObject;
  105.          int var4 = var1.GetID();
  106.  
  107.          try {
  108.             JSbxValue var5 = JSbxValue.convertJSObject2JScript(var7[var4]);
  109.             var2.Put(var5);
  110.          } catch (Exception var6) {
  111.          }
  112.       } else {
  113.          JavaCallInfo var3 = this.GetJavaCallInfo();
  114.          JScriptJavaClass.JavaPropertyGet(var1, var2, this, this.aJavaObject, this.aJScriptCaller, var3);
  115.       }
  116.    }
  117.  
  118.    public void PropertyPut(JSbxObjectProperty var1, JSbxValue var2) throws JSbxException {
  119.       if (this.bJavaArray) {
  120.          Object[] var5 = this.aJavaObject;
  121.          int var4 = var1.GetID();
  122.          var5[var4] = JSbxValue.convertJScript2JSObject(var2);
  123.       } else {
  124.          JavaCallInfo var3 = this.GetJavaCallInfo();
  125.          JScriptJavaClass.JavaPropertyPut(var1, var2, this, this.aJavaObject, this.aJScriptCaller, var3);
  126.       }
  127.    }
  128.  
  129.    public Object getJavaObject() {
  130.       return this.aJavaObject;
  131.    }
  132.  
  133.    public String Property_GetJScript_typeofString(JSbxObjectProperty var1) {
  134.       return "object";
  135.    }
  136.  
  137.    public String GetJScriptString(boolean var1) {
  138.       return this.aJavaObject.toString();
  139.    }
  140. }
  141.