home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / netscape / javascript / NativeJavaPackage.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  4.3 KB  |  144 lines

  1. package com.netscape.javascript;
  2.  
  3. public class NativeJavaPackage extends RescopeableObject {
  4.    static final String[] commonPackages = new String[]{"java.lang", "java.lang.reflect", "java.io", "java.math", "java.util", "java.util.zip", "java.text", "java.text.resources", "java.applet", "netscape.security", "netscape.plugin", "netscape.application"};
  5.    private String packageName;
  6.    // $FF: synthetic field
  7.    private static Class class$com$netscape$javascript$NativeJavaPackage;
  8.  
  9.    public static Scriptable getClass(Context var0, Scriptable var1, Object[] var2, Function var3) {
  10.       if (var2.length > 0 && var2[0] instanceof NativeJavaObject) {
  11.          NativeJavaObject var4 = (NativeJavaObject)var2[0];
  12.          Scriptable var5 = ScriptableObject.getTopLevelScope(var1);
  13.          Class var6 = var4.unwrap().getClass();
  14.          String var7 = "Packages." + var6.getName();
  15.          int var8 = 0;
  16.  
  17.          while(true) {
  18.             int var9 = var7.indexOf(46, var8);
  19.             String var10 = var9 == -1 ? var7.substring(var8) : var7.substring(var8, var9);
  20.             Object var11 = var5.get(var10, var5);
  21.             if (!(var11 instanceof Scriptable)) {
  22.                break;
  23.             }
  24.  
  25.             var5 = (Scriptable)var11;
  26.             if (var9 == -1) {
  27.                return var5;
  28.             }
  29.  
  30.             var8 = var9 + 1;
  31.          }
  32.       }
  33.  
  34.       throw Context.reportRuntimeError(Context.getMessage("msg.not.java.obj", (Object[])null));
  35.    }
  36.  
  37.    void forcePackage(String var1) {
  38.       int var3 = var1.indexOf(46);
  39.       if (var3 == -1) {
  40.          var3 = var1.length();
  41.       }
  42.  
  43.       String var4 = var1.substring(0, var3);
  44.       Object var5 = super.get(var4, this);
  45.       NativeJavaPackage var2;
  46.       if (var5 != null && var5 instanceof NativeJavaPackage) {
  47.          var2 = (NativeJavaPackage)var5;
  48.       } else {
  49.          String var6 = this.packageName.length() == 0 ? var4 : this.packageName + "." + var4;
  50.          var2 = new NativeJavaPackage(var6);
  51.          ((ScriptableObject)var2).setParentScope(this);
  52.          ((ScriptableObject)var2).setPrototype(super.prototype);
  53.          super.put(var4, this, var2);
  54.       }
  55.  
  56.       if (var3 < var1.length()) {
  57.          var2.forcePackage(var1.substring(var3 + 1));
  58.       }
  59.  
  60.    }
  61.  
  62.    public void put(String var1, Scriptable var2, Object var3) {
  63.    }
  64.  
  65.    public void put(int var1, Scriptable var2, Object var3) {
  66.    }
  67.  
  68.    public synchronized Object get(String var1, Scriptable var2) {
  69.       Object var3 = super.get(var1, var2);
  70.       if (var3 != Scriptable.NOT_FOUND) {
  71.          return var3;
  72.       } else {
  73.          String var4 = this.packageName.length() == 0 ? var1 : this.packageName + "." + var1;
  74.  
  75.          Object var5;
  76.          try {
  77.             Class var6 = Class.forName(var4);
  78.             var5 = NativeJavaClass.wrap(ScriptableObject.getTopLevelScope(this), var6);
  79.             ((Scriptable)var5).setParentScope(this);
  80.             ((Scriptable)var5).setPrototype(super.prototype);
  81.          } catch (ClassNotFoundException var7) {
  82.             var5 = new NativeJavaPackage(var4);
  83.             ((Scriptable)var5).setParentScope(this);
  84.             ((Scriptable)var5).setPrototype(super.prototype);
  85.          }
  86.  
  87.          super.put(var1, var2, var5);
  88.          return var5;
  89.       }
  90.    }
  91.  
  92.    public synchronized Object get(int var1, Scriptable var2) {
  93.       return Scriptable.NOT_FOUND;
  94.    }
  95.  
  96.    public Object getDefaultValue(Class var1) {
  97.       return this.toString();
  98.    }
  99.  
  100.    public NativeJavaPackage(String var1) {
  101.       this.packageName = var1;
  102.    }
  103.  
  104.    public String toString() {
  105.       return "[JavaPackage " + this.packageName + "]";
  106.    }
  107.  
  108.    // $FF: synthetic method
  109.    private static Class class$(String var0) {
  110.       try {
  111.          return Class.forName(var0);
  112.       } catch (ClassNotFoundException var2) {
  113.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  114.       }
  115.    }
  116.  
  117.    public boolean has(String var1, int var2, Scriptable var3) {
  118.       return true;
  119.    }
  120.  
  121.    public static Scriptable init(Scriptable var0) throws PropertyException {
  122.       NativeJavaPackage var1 = new NativeJavaPackage("");
  123.       ((ScriptableObject)var1).setPrototype(ScriptableObject.getObjectPrototype(var0));
  124.       ((ScriptableObject)var1).setParentScope(var0);
  125.       NativeJavaPackage var2 = (NativeJavaPackage)var1.get("java", var1);
  126.       ScriptableObject var3 = (ScriptableObject)var0;
  127.       var3.defineProperty("Packages", var1, 2);
  128.       var3.defineProperty("java", var2, 2);
  129.  
  130.       for(int var4 = 0; var4 < commonPackages.length; ++var4) {
  131.          var1.forcePackage(commonPackages[var4]);
  132.       }
  133.  
  134.       NativeJavaObject.initJSObject();
  135.       String[] var5 = new String[]{"getClass"};
  136.       var3.defineFunctionProperties(var5, class$com$netscape$javascript$NativeJavaPackage != null ? class$com$netscape$javascript$NativeJavaPackage : (class$com$netscape$javascript$NativeJavaPackage = class$("com.netscape.javascript.NativeJavaPackage")), 2);
  137.       return var1;
  138.    }
  139.  
  140.    public String getClassName() {
  141.       return "JavaPackage";
  142.    }
  143. }
  144.