KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jxxload_help > PackageManager


1 // Copyright 2000 Samuele Pedroni
2

3 package jxxload_help;
4
5 public class PackageManager extends org.python.core.PathPackageManager {
6     
7     private JavaLoaderFactory factory;
8     private ClassLoader JavaDoc loader;
9     
10     public synchronized ClassLoader JavaDoc getLoader() {
11         if (loader == null) loader = factory.makeLoader();
12         return loader;
13     }
14     
15     public synchronized ClassLoader JavaDoc checkLoader() {
16         return loader;
17     }
18     
19     public synchronized void resetLoader() {
20         loader = null;
21     }
22     
23     // ??pending add cache support?
24
public PackageManager(org.python.core.PyList path,JavaLoaderFactory factory) {
25         this.factory = factory;
26         
27         for (int i = 0; i < path.__len__(); i++) {
28             String JavaDoc entry = path.__finditem__(i).toString();
29             if (entry.endsWith(".jar") || entry.endsWith(".zip")) {
30                 addJarToPackages(new java.io.File JavaDoc(entry),false);
31             } else {
32                 java.io.File JavaDoc dir = new java.io.File JavaDoc(entry);
33                 if (entry.length() == 0 || dir.isDirectory()) addDirectory(dir);
34             }
35         }
36     }
37
38     public Class JavaDoc findClass(String JavaDoc pkg,String JavaDoc name,String JavaDoc reason) {
39         if (pkg != null && pkg.length()>0) name = pkg + '.' + name;
40         try {
41             return getLoader().loadClass(name);
42         }
43         catch(ClassNotFoundException JavaDoc e) {
44             return null;
45         }
46         catch (LinkageError JavaDoc e) {
47             throw org.python.core.Py.JavaError(e);
48         }
49     }
50
51     public void addJarDir(String JavaDoc jdir, boolean cache) {
52         throw new RuntimeException JavaDoc("addJarDir not supported for reloadable packages");
53     }
54
55     public void addJar(String JavaDoc jdir, boolean cache) {
56         throw new RuntimeException JavaDoc("addDir not supported for reloadable packages");
57     }
58 }
59
Popular Tags