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

📄 statemachine.java.svn-base

📁 一个timesheet程序,用来统计开发人员的度量衡web在线程序.用于软件行业
💻 SVN-BASE
字号:
package com.nsi.control.backend.handles;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.nsi.control.event.NsiEvent;
import com.nsi.control.exceptions.NsiEventException;

/**
 * @author Chris Ye, created on Sep 30, 2008
 *
 * StateMachine
 */
public class StateMachine
{
	private static Log log = LogFactory.getLog(StateMachine.class);
	private Map<String, StateHandler> handlerMap;
	/**
	 * constructor of StateMachine
	 */
	public StateMachine()
	{
		handlerMap = new HashMap<String, StateHandler>();
	}
	public List<String> handleEvent(NsiEvent ev) throws NsiEventException
	{
		String eventName = ev.getEventName();
		if(eventName != null)
		{
			String handlerName = ev.getHandleName();
			StateHandler handler = null;
			try
			{
				if(handlerMap.get(eventName) != null)
				{
					handler = handlerMap.get(eventName);
				}
				else
				{
					handler = (StateHandler)getClass().getClassLoader().loadClass(handlerName).newInstance();
					handlerMap.put(eventName, handler);
				}
			}
			catch(Exception ex)
			{
				log.error("StateMachine: error loading " + handlerName + " : ", ex);
				throw new NsiEventException("handleEvent() --  error loading " + handlerName + " : ", ex);
			}
			if(handler != null)
			{
				try
				{
					handler.perform(ev);
				}
				catch(NsiEventException ne)
				{
					log.error("sm-handler.perform(ev) caught NsiEventException : ", ne);
					throw ne;
				}
			}
		}
		return ModelUpdateManager.getInstance().getUpdatedModels(ev);
	}
}

⌨️ 快捷键说明

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