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

📄 idgeneratorfactory.java

📁 软件设计课做的一个类似Hibernate的O/R Mapping的框架
💻 JAVA
字号:
package cn.edu.nju.software.sd.torm.util;

import java.util.HashMap;
import java.util.Map;

/**
 * The IDGeneratorFactory class is used to generate the corresponding
 * IDGenerator according to the given name, or the default generator if the name
 * is wrong or undefined.
 * 
 * @author Yinfei XU
 * @version 1.0.0
 */
public class IDGeneratorFactory {

	static Map<String, IDGenerator> generators;

	static {
		generators = new HashMap<String, IDGenerator>();
		generators.put("increment", new IncrementIDGenerator());
	}

	/**
	 * Create the default IDGenerator. It would be <tt>IncrementIDGenerator<tt>
	 * 
	 * @return The Default IDGenerator.
	 */
	public static IDGenerator createDefaultIDGenerator() {
		return generators.get("increment");
	}

	/**
	 * Create a IDGenerator according to the Generator name.
	 * 
	 * @param name The name of the generator.
	 * 
	 * @return A IDGenerator with the name specified by the arg name. And A
	 *         DefaultGenreator if the name is wrong.
	 */
	public static IDGenerator createIDGenerator(String name) {
		if (name == null || name.length()<1)
			return generators.get("increment");
		String nname = name.toLowerCase().trim();
		IDGenerator g = generators.get(name.toLowerCase().trim());
		if (g == null) {
			String fullName = nname.substring(0, 1).toUpperCase()
					+ nname.substring(1) + "Generator";
			Class c = null;
			try {
				c = Class.forName("cn.edu.nju.software.sd.util." + fullName);
			} catch (ClassNotFoundException e) {
				return createDefaultIDGenerator();
			}
			try {
				generators.put(nname, (g = (IDGenerator) c.getConstructor(
						new Class[] {}).newInstance(new Object[] {})));
			} catch (Exception e) {
				return createDefaultIDGenerator();
			}
		}
		return g;
	}
}

⌨️ 快捷键说明

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