home *** CD-ROM | disk | FTP | other *** search
- package java.lang;
-
- import java.util.Hashtable;
-
- public abstract class ClassLoader {
- private boolean initialized = false;
- private int PrivateData;
- private Hashtable arrays = new Hashtable();
-
- protected ClassLoader() {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkCreateClassLoader();
- }
-
- this.init();
- this.initialized = true;
- }
-
- protected abstract Class loadClass(String var1, boolean var2) throws ClassNotFoundException;
-
- protected final native Class defineClass(byte[] var1, int var2, int var3);
-
- protected final native void resolveClass(Class var1);
-
- protected final native Class findSystemClass(String var1) throws ClassNotFoundException;
-
- private native void init();
-
- private final Class loadClassInternal(String var1, boolean var2) throws ClassNotFoundException {
- if (var1.charAt(0) != '[') {
- return this.loadClass(var1, var2);
- } else {
- Class var3 = (Class)this.arrays.get(var1);
- if (var3 == null) {
- Class var4;
- if (var1.charAt(1) == '[') {
- var4 = this.loadClassInternal(var1.substring(1), var2);
- } else {
- if (var1.charAt(1) != 'L') {
- throw new ClassNotFoundException(var1);
- }
-
- int var5 = var1.indexOf(59);
- var4 = this.loadClass(var1.substring(2, var5), var2);
- }
-
- Hashtable var8 = this.arrays;
- synchronized(var8){}
-
- try {
- var3 = (Class)this.arrays.get(var1);
- if (var3 == null) {
- var3 = this.createArrayClass(var1, var4);
- this.arrays.put(var1, var3);
- }
- } catch (Throwable var7) {
- throw var7;
- }
- }
-
- return var3;
- }
- }
-
- private final native Class createArrayClass(String var1, Class var2);
- }
-