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

📄 eventadapterregistry.java

📁 Bean Scripting Framework (BSF)为在java应用中使用脚本语言
💻 JAVA
字号:
/* * Copyright 2004,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.bsf.util.event;import java.util.Hashtable;import org.apache.bsf.util.event.generator.EventAdapterGenerator;/** * The <em>EventAdapterRegistry</em> is the registry of event adapters. * If a desired adapter is not found, the adapter will be dynamically * generated when lookup is attempted. Set the <code>dynamic</code> property * to <code>false</code> to disable this feature. * <p> * This implementation first looks for an adapter in its lookup table * and if it doesn't find one looks for a standard implementation of * that adapter in the org.apache.bsf.util.event.adapters package with a * standard naming convention. The naming convention it assumes is the * following: for event listener type <tt>a.b.c.FooListener</tt>, * it loads an adapter of type * <tt>org.apache.bsf.util.event.adapters.a_b_c_FooAdapter</tt>. * If both the loading and the dynamic generation fail, then a * <code>null</code> is returned. * <p> * * @author   Sanjiva Weerawarana * @author   Matthew J. Duftler * @see      EventAdapter */public class EventAdapterRegistry {  private static Hashtable reg = new Hashtable ();  private static ClassLoader cl = null;  private static String adapterPackage = "org.apache.bsf.util.event.adapters";  private static String adapterSuffix = "Adapter";  private static boolean dynamic = true;  public static Class lookup (Class listenerType) {	String key = listenerType.getName().replace ('.', '_');	Class adapterClass = (Class) reg.get (key);	if (adapterClass == null) {	  String en = key.substring (0, key.lastIndexOf ("Listener"));	  String cn = adapterPackage + "." + en + adapterSuffix;	  try {		// Try to resolve one.		// adapterClass = (cl != null) ? cl.loadClass (cn) : Class.forName (cn);		adapterClass = (cl != null) ? cl.loadClass (cn)                                            : Thread.currentThread().getContextClassLoader().loadClass (cn); // rgf, 2006-01-05	  } catch (ClassNotFoundException e) {		if (dynamic) {		  // Unable to resolve one, try to generate one.		  adapterClass = // if second argument is set to 'true', then the class file will be stored in the filesystem			EventAdapterGenerator.makeEventAdapterClass (listenerType, false);		}	  }	  if (adapterClass != null) {		reg.put (key, adapterClass);	  }	}	return adapterClass;  }  public static void register (Class listenerType, Class eventAdapterClass) {	String key = listenerType.getName().replace('.', '_');	reg.put (key, eventAdapterClass);  }  /**   * Class loader to use to load event adapter classes.   */  public static void setClassLoader (ClassLoader cloader) {	cl = cloader;  }  /**   * Indicates whether or not to dynamically generate adapters; default is   * <code>true</code>.   * <p>   * If the <code>dynamic</code> property is set to true, and the   * <code>ClassLoader</code> is unable to resolve an adapter, one will be   * dynamically generated.   *   * @param dynamic whether or not to dynamically generate adapters.   */  public static void setDynamic (boolean dynamic) {	EventAdapterRegistry.dynamic = dynamic;  }}

⌨️ 快捷键说明

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