home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / lang / ClassLoader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  2.8 KB  |  127 lines

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