?? presentmanager.java
字號:
/*****************************************************************************
* (C) Copyright 2004 。
* 保留對所有使用、復制、修改和發布整個軟件和相關文檔的權利。
* 本計算機程序受著作權法和國際公約的保護,未經授權擅自復制或
* 傳播本程序的全部或部分,可能受到嚴厲的民事和刑事制裁,并
* 在法律允許的范圍內受到最大可能的起訴。
*/
/*****************************************************************************
* @作者:Golden Peng
* @版本: 1.0
* @時間: 2002-10-08
*/
/*****************************************************************************
* 修改記錄清單
* 修改人 :
* 修改記錄:
* 修改時間:
* 修改描述:
*
*/
package com.corp.bisc.ebiz.base;
/**
* 此處插入類型描述。
* 創建日期:(2002-5-15 9:58:48)
* @author:Administrator
*/
import java.util.*;
import org.w3c.dom.*;
import com.corp.bisc.ebiz.exception.*;
import com.corp.bisc.ebiz.util.XMLUtil;
public class PresentManager extends ObjectBase
{
protected String action;
protected String defPackage = "";
protected Hashtable handlerMap = new Hashtable();
/**
* PresentManager 構造子注解。
*/
public PresentManager()
{
super();
}
public String getAction()
{
return action;
}
public PresentHandler getHandler(Exception e)
{
enter("getHandler(Exception)");
Hashtable maps = (Hashtable)handlerMap.get(PresentHandler.HANDLER_TAG_EXP);
Class eClass = e.getClass();
PresentHandler handler = null;
while(eClass != null)
{
String handlerId = eClass.getName();
handler = (PresentHandler)maps.get(handlerId);
if (handler == null)
eClass = eClass.getSuperclass();
else
break;
}
leave("getHandler(Exception)");
return handler;
}
public PresentHandler getHandler(String handlerId)
{
enter("getHandler(String)");
Hashtable maps = (Hashtable)handlerMap.get(PresentHandler.HANDLER_TAG_CODE);
PresentHandler handler = (PresentHandler)maps.get(handlerId);
leave("getHandler(String)");
return handler;
}
public void init(Node cfgNode) throws InvalidConfigException
{
enter("init(Node)");
NamedNodeMap attribs = cfgNode.getAttributes();
Node defPkgNode = attribs.getNamedItem("defPackage");
if (defPkgNode != null)
defPackage = defPkgNode.getNodeValue();
Vector handlers = XMLUtil.selectNodes2(cfgNode , "PresentHandler");
int size = handlers.size();
Hashtable codeMap = new Hashtable();
Hashtable expMap = new Hashtable();
for(int i = 0 ; i < size ; i ++)
{
Node handlerNode = (Node)handlers.elementAt(i);
PresentHandler handler = new PresentHandler();
handler.init(handlerNode , defPackage);
if ((handler.handlerType & PresentHandler.HANDLER_TYPE_CODE) != 0)
codeMap.put(handler.getHandlerId() , handler);
if ((handler.handlerType & PresentHandler.HANDLER_TYPE_EXP) != 0)
expMap.put(handler.getHandlerId() , handler);
}
handlerMap.put(PresentHandler.HANDLER_TAG_CODE , codeMap);
handlerMap.put(PresentHandler.HANDLER_TAG_EXP , expMap);
leave("init(Node)");
}
public String getHashHandlers()
{
if(handlerMap == null)
return "null";
else{
Enumeration enum = handlerMap.keys();
StringBuffer sb = new StringBuffer("handlers in hashtable: {{");
while(enum.hasMoreElements()){
Object key = enum.nextElement();
Object handler = handlerMap.get(key);
sb.append("[key: ");
sb.append(key.toString());
sb.append("handler: ");
sb.append(handler.toString());
sb.append("]");
}
sb.append("}}");
return sb.toString();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -