1 19 package org.java.plugin; 20 21 import java.net.URL ; 22 import java.net.URLClassLoader ; 23 import java.net.URLStreamHandlerFactory ; 24 25 import org.java.plugin.registry.PluginDescriptor; 26 27 34 public abstract class PluginClassLoader extends URLClassLoader { 35 private final PluginManager manager; 36 private final PluginDescriptor descriptor; 37 38 47 protected PluginClassLoader(final PluginManager aManager, 48 final PluginDescriptor descr, final URL [] urls, 49 final ClassLoader parent, final URLStreamHandlerFactory factory) { 50 super(urls, parent, factory); 51 manager = aManager; 52 descriptor = descr; 53 } 54 55 62 protected PluginClassLoader(final PluginManager aManager, 63 final PluginDescriptor descr, final URL [] urls, 64 final ClassLoader parent) { 65 super(urls, parent); 66 manager = aManager; 67 descriptor = descr; 68 } 69 70 76 protected PluginClassLoader(final PluginManager aManager, 77 final PluginDescriptor descr, final URL [] urls) { 78 super(urls); 79 manager = aManager; 80 descriptor = descr; 81 } 82 83 86 public PluginManager getPluginManager() { 87 return manager; 88 } 89 90 93 public PluginDescriptor getPluginDescriptor() { 94 return descriptor; 95 } 96 97 100 protected abstract void dispose(); 101 102 105 protected abstract void pluginsSetChanged(); 106 107 110 public String toString() { 111 return "{PluginClassLoader: uid=" + System.identityHashCode(this) + "; " + descriptor + "}"; } 115 } 116 | Popular Tags |