home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / java / lang / ClassLoader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-27  |  1.6 KB  |  68 lines

  1. package java.lang;
  2.  
  3. import java.util.Hashtable;
  4.  
  5. public abstract class ClassLoader {
  6.    private boolean initialized = false;
  7.    private int PrivateData;
  8.    private Hashtable arrays = new Hashtable();
  9.  
  10.    protected ClassLoader() {
  11.       SecurityManager var1 = System.getSecurityManager();
  12.       if (var1 != null) {
  13.          var1.checkCreateClassLoader();
  14.       }
  15.  
  16.       this.init();
  17.       this.initialized = true;
  18.    }
  19.  
  20.    protected abstract Class loadClass(String var1, boolean var2) throws ClassNotFoundException;
  21.  
  22.    protected final native Class defineClass(byte[] var1, int var2, int var3);
  23.  
  24.    protected final native void resolveClass(Class var1);
  25.  
  26.    protected final native Class findSystemClass(String var1) throws ClassNotFoundException;
  27.  
  28.    private native void init();
  29.  
  30.    private final Class loadClassInternal(String var1, boolean var2) throws ClassNotFoundException {
  31.       if (var1.charAt(0) != '[') {
  32.          return this.loadClass(var1, var2);
  33.       } else {
  34.          Class var3 = (Class)this.arrays.get(var1);
  35.          if (var3 == null) {
  36.             Class var4;
  37.             if (var1.charAt(1) == '[') {
  38.                var4 = this.loadClassInternal(var1.substring(1), var2);
  39.             } else {
  40.                if (var1.charAt(1) != 'L') {
  41.                   throw new ClassNotFoundException(var1);
  42.                }
  43.  
  44.                int var5 = var1.indexOf(59);
  45.                var4 = this.loadClass(var1.substring(2, var5), var2);
  46.             }
  47.  
  48.             Hashtable var8 = this.arrays;
  49.             synchronized(var8){}
  50.  
  51.             try {
  52.                var3 = (Class)this.arrays.get(var1);
  53.                if (var3 == null) {
  54.                   var3 = this.createArrayClass(var1, var4);
  55.                   this.arrays.put(var1, var3);
  56.                }
  57.             } catch (Throwable var7) {
  58.                throw var7;
  59.             }
  60.          }
  61.  
  62.          return var3;
  63.       }
  64.    }
  65.  
  66.    private final native Class createArrayClass(String var1, Class var2);
  67. }
  68.