home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 November / PCO1197.ISO / FilesBBS / WIN95 / NET_COM / N32E403.EXE / nav40l.z / java40.jar / java / lang / ClassLoader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-09-04  |  2.9 KB  |  143 lines

  1. package java.lang;
  2.  
  3. import java.io.InputStream;
  4. import java.net.URL;
  5. import java.util.Enumeration;
  6. import java.util.Hashtable;
  7.  
  8. public abstract class ClassLoader {
  9.    private boolean initialized = false;
  10.    private Hashtable classes = new Hashtable();
  11.  
  12.    protected ClassLoader() {
  13.       System.getSecurityManager().checkCreateClassLoader();
  14.       this.init();
  15.       this.initialized = true;
  16.    }
  17.  
  18.    public Class loadClass(String var1) throws ClassNotFoundException {
  19.       return this.loadClass(var1, true);
  20.    }
  21.  
  22.    protected abstract Class loadClass(String var1, boolean var2) throws ClassNotFoundException;
  23.  
  24.    protected final Class defineClass(byte[] var1, int var2, int var3) {
  25.       return this.defineClass((String)null, var1, var2, var3, 0, (String)null);
  26.    }
  27.  
  28.    protected final Class defineClass(String var1, byte[] var2, int var3, int var4) {
  29.       return this.defineClass(var1, var2, var3, var4, 0, (String)null);
  30.    }
  31.  
  32.    protected Class defineClass(String var1, byte[] var2, int var3, int var4, int var5, String var6) {
  33.       this.check();
  34.       Class var7 = this.defineClass0(var1, var2, var3, var4, var5, var6);
  35.       if (var7 != null) {
  36.          this.classes.put(var7.getName(), var7);
  37.       }
  38.  
  39.       return var7;
  40.    }
  41.  
  42.    protected final void resolveClass(Class var1) {
  43.       this.check();
  44.       this.resolveClass0(var1);
  45.    }
  46.  
  47.    protected final Class findSystemClass(String var1) throws ClassNotFoundException {
  48.       this.check();
  49.       return this.findSystemClass0(var1);
  50.    }
  51.  
  52.    protected final void setSigners(Class var1, Object[] var2) {
  53.       this.check();
  54.       var1.setSigners(var2);
  55.    }
  56.  
  57.    private native void init();
  58.  
  59.    private native Class defineClass0(String var1, byte[] var2, int var3, int var4, int var5, String var6);
  60.  
  61.    private native void resolveClass0(Class var1);
  62.  
  63.    private native Class findSystemClass0(String var1) throws ClassNotFoundException;
  64.  
  65.    private void check() {
  66.       if (!this.initialized) {
  67.          throw new SecurityException("ClassLoader object not initialized.");
  68.       }
  69.    }
  70.  
  71.    protected final Class findLoadedClass(String var1) {
  72.       return (Class)this.classes.get(var1);
  73.    }
  74.  
  75.    final Class loadClassInternal(String var1, boolean var2) throws ClassNotFoundException {
  76.       var1 = var1.replace('/', '.');
  77.       Class var3 = (Class)this.classes.get(var1);
  78.       if (var3 == null) {
  79.          SecurityManager.enablePrivilege("UniversalPackageAccess");
  80.          var3 = this.loadClass(var1, false);
  81.          SecurityManager.revertPrivilege();
  82.          if (var3 == null) {
  83.             throw new ClassNotFoundException(var1);
  84.          }
  85.  
  86.          String var4 = var3.getName();
  87.          if (!var4.equals(var1)) {
  88.             throw new ClassNotFoundException(var1);
  89.          }
  90.  
  91.          this.classes.put(var4, var3);
  92.       }
  93.  
  94.       if (var2) {
  95.          this.resolveClass(var3);
  96.       }
  97.  
  98.       return var3;
  99.    }
  100.  
  101.    public static final InputStream getSystemResourceAsStream(String var0) {
  102.       return getSystemResourceAsStream0(var0);
  103.    }
  104.  
  105.    public static final URL getSystemResource(String var0) {
  106.       String var1 = getSystemResourceAsName0(var0);
  107.  
  108.       URL var2;
  109.       try {
  110.          var2 = new URL(var1);
  111.       } catch (Exception var3) {
  112.          var2 = null;
  113.       }
  114.  
  115.       return var2;
  116.    }
  117.  
  118.    public InputStream getResourceAsStream(String var1) {
  119.       return null;
  120.    }
  121.  
  122.    public URL getResource(String var1) {
  123.       return null;
  124.    }
  125.  
  126.    private static native InputStream getSystemResourceAsStream0(String var0);
  127.  
  128.    private static native String getSystemResourceAsName0(String var0);
  129.  
  130.    public URL getCodeBase() {
  131.       throw new SecurityException();
  132.    }
  133.  
  134.    public boolean checkMatchPrincipalAlways(int var1) {
  135.       throw new SecurityException();
  136.    }
  137.  
  138.    protected Enumeration getClassNames() {
  139.       this.check();
  140.       return this.classes.keys();
  141.    }
  142. }
  143.