// ClassLoader.java - Define policies for loading Java classes. /* Copyright (C) 1998, 1999 Cygnus Solutions This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.lang; import java.io.InputStream; import java.util.Hashtable; /** * @author Tom Tromey * @date October 28, 1998 */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * Status: Just a stub; not useful at all. */ public abstract class ClassLoader { protected ClassLoader () { cache = new Hashtable (); } protected final Class defineClass (String className, byte[] bytecode, int offset, int length) { throw new ClassFormatError ("defineClass unimplemented"); } protected final Class defineClass (byte[] bytecodes, int offset, int length) { return defineClass (null, bytecodes, offset, length); } protected final Class findLoadedClass (String className) { return (Class) cache.get(className); } protected final Class findSystemClass (String className) throws ClassNotFoundException { Class c = system.findLoadedClass(className); system.resolveClass(c); return c; } // FIXME: Needs URL. // public URL getResource (String resName); public InputStream getResourceAsStream (String resName) { return null; } // FIXME: Needs URL. // public static final URL getSystemResource (String resName); public static final InputStream getSystemResourceAsStream (String resName) { return null; } protected abstract Class loadClass (String className, boolean resolve) throws ClassNotFoundException; public Class loadClass (String name) throws ClassNotFoundException { return loadClass (name, true); } protected final void resolveClass (Class c) { // Nothing for now. } protected final void setSigners (Class cl, Object[] signers) { // Nothing for now. } // Class cache. private Hashtable cache; // The system class loader. FIXME: should have an actual value private static final ClassLoader system = null; }