pluginsclassloader.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 55 行

JAVA
55
字号
/*
 * $Id: PluginsClassLoader.java,v 1.1 2004/01/02 08:41:56 epr Exp $
 */
package org.jnode.plugin.model;

import java.net.URL;
import java.util.Iterator;

import org.jnode.plugin.PluginDescriptor;

/**
 * @author Ewout Prangsma (epr@users.sourceforge.net)
 */
public class PluginsClassLoader extends ClassLoader {

	private final PluginRegistryModel registry;

	public PluginsClassLoader(PluginRegistryModel registry) {
		this.registry = registry;
	}

	/**
	 * @see java.lang.ClassLoader#findClass(java.lang.String)
	 */
	protected Class findClass(String name) throws ClassNotFoundException {
		for (Iterator i = registry.getDescriptorIterator(); i.hasNext();) {
			final PluginDescriptor descr = (PluginDescriptor) i.next();
			if (!descr.isSystemPlugin()) {
				final PluginClassLoader cl = (PluginClassLoader) descr.getPluginClassLoader();
				if (cl.containsClass(name)) {
					return cl.loadClass(name);
				}
			}
		}
		throw new ClassNotFoundException(name);
	}

	/**
	 * @see java.lang.ClassLoader#findResource(java.lang.String)
	 */
	protected URL findResource(String name) {
		for (Iterator i = registry.getDescriptorIterator(); i.hasNext();) {
			final PluginDescriptor descr = (PluginDescriptor) i.next();
			if (!descr.isSystemPlugin()) {
				final PluginClassLoader cl = (PluginClassLoader) descr.getPluginClassLoader();
				final URL url = cl.getResource(name);
				if (url != null) {
					return url;
				}
			}
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?