⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extensionloader.java

📁 JRemoteControl is a simple Java&#8482 driven bluetooth remote control.It allows you to initiate virt
💻 JAVA
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.server.core;import java.util.Hashtable;import java.util.Map;import fildiv.jremcntl.common.core.Logger;public class ExtensionLoader {	private JRemEnv env;		private ExtensionClassLoader extClsLoader;		// single factory instance		private Map factories;		protected ExtensionLoader() {		this.env = JRemEnv.getInstance();						extClsLoader = new ExtensionClassLoader();				factories = new Hashtable();	}		protected void addRepository(String repo) {		extClsLoader.addRepository(repo);			}		protected JRemExtensionFactory getCachedExtensionFactory(String className) {		return (JRemExtensionFactory) factories.get(className);	}		protected void addExtensionFactoryToCache(JRemExtensionFactory factory, String className) {		factories.put(className, factory);	}		public JRemExtension getExtension(String className) {				JRemExtensionFactory fact = getCachedExtensionFactory(className);		if (fact != null)			return createExtension(fact);				fact = createExtensionFactory(className, fact);		if (fact == null) {			if (env.isLogEnabled())				env.getLogger().info(						"Unable to create factory with class name: " + className);			return null;				}				return createExtension(fact);	}	private JRemExtensionFactory createExtensionFactory(String className, JRemExtensionFactory fact) {				Logger log = env.getLogger();				try {			Class fc = extClsLoader.loadClass(className);			fact = (JRemExtensionFactory) fc.newInstance();			addExtensionFactoryToCache(fact, className);		} catch (ClassNotFoundException e) {			log.error(e);			return null;		} catch (InstantiationException e) {			log.error(e);			return null;		} catch (IllegalAccessException e) {			log.error(e);			return null;		}				return fact;	}	private JRemExtension createExtension(JRemExtensionFactory ef) {						JRemExtension ext = ef.createExtension(createSafeEnv());				registerExtensionProperties(ext);				return ext;	}		private void registerExtensionProperties(JRemExtension ext) {				JRemProperty properties[] = ext.getProperties();		if (properties == null)			return;				JRemPropertyMapper pm = env.getPropertiesMapper();				for (int index = 0; index < properties.length; ++index) {						JRemProperty p = properties[index];			pm.registerProperty(ext.getID(), p);					}			}	protected Environment createSafeEnv() {		return new JRemExtensionEnv();			}}

⌨️ 快捷键说明

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