defaultmoduledescriptorfactory.java
来自「模块化您的应用系统」· Java 代码 · 共 53 行
JAVA
53 行
package com.opensymphony.tonic;
import com.opensymphony.tonic.loaders.SinglePluginLoader;
import com.opensymphony.tonic.util.ClassLoaderUtils;
import java.util.Map;
import java.util.HashMap;
public class DefaultModuleDescriptorFactory implements ModuleDescriptorFactory
{
private Map moduldeDescriptorClasses;
public DefaultModuleDescriptorFactory()
{
this.moduldeDescriptorClasses = new HashMap();
}
public Class getModuleDescriptorClass(String type)
{
return (Class) moduldeDescriptorClasses.get(type);
}
public ModuleDescriptor getModuleDescriptor(String type) throws PluginParseException, IllegalAccessException, InstantiationException, ClassNotFoundException
{
Class moduleDescriptorClazz = getModuleDescriptorClass(type);
if (moduleDescriptorClazz == null)
throw new PluginParseException("Cannot find ModuleDescriptor class for plugin of type '" + type + "'.");
return (ModuleDescriptor) ClassLoaderUtils.loadClass(moduleDescriptorClazz.getName(), SinglePluginLoader.class).newInstance();
}
public boolean hasModuleDescriptor(String type)
{
return moduldeDescriptorClasses.containsKey(type);
}
public void addModuleDescriptor(String type, Class moduleDescriptorClass)
{
moduldeDescriptorClasses.put(type, moduleDescriptorClass);
}
public void removeModuleDescriptorForType(String type)
{
moduldeDescriptorClasses.remove(type);
}
protected Map getDescriptorClassesMap()
{
return moduldeDescriptorClasses;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?