package chat.server.call;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import chat.handler.ChannelHandler;
|
import chat.handler.ChatRoomHandler;
|
import chat.handler.ClientHandler;
|
import chat.handler.GroupHandler;
|
import chat.handler.FriendshipHandler;
|
import chat.handler.MessageHandler;
|
import chat.handler.RobotHandler;
|
import chat.handler.SensitiveHandler;
|
import chat.handler.SystemHandler;
|
import chat.handler.FriendCircleHandler;
|
|
|
public class CallObjectMap {
|
|
private static Map<String, Class<? extends CallObject>> objectMap;
|
|
static {
|
init();
|
}
|
|
public static CallObject get(Operator operator) {
|
try {
|
String key = operator.getObject();
|
key = key.toLowerCase();
|
|
Class<? extends CallObject> clazz = objectMap.get(key);
|
|
if (clazz == null) {
|
return null;
|
}
|
|
CallObject object = clazz.newInstance();
|
return object;
|
}
|
catch (Exception e) {
|
return null;
|
}
|
}
|
|
private static void init() {
|
//1.
|
objectMap = new HashMap<String, Class<? extends CallObject>>();
|
|
addOneCallObject("client", ClientHandler.class);
|
addOneCallObject("chatroom", ChatRoomHandler.class);
|
addOneCallObject("sensitive", SensitiveHandler.class);
|
addOneCallObject("friend", FriendshipHandler.class);
|
addOneCallObject("message", MessageHandler.class);
|
addOneCallObject("group", GroupHandler.class);
|
addOneCallObject("channel", ChannelHandler.class);
|
addOneCallObject("robot", RobotHandler.class);
|
addOneCallObject("system", SystemHandler.class);
|
addOneCallObject("friendcircle", FriendCircleHandler.class);
|
}
|
|
private static void addOneCallObject(String key, Class<? extends CallObject> clazz) {
|
key = key.toLowerCase();
|
objectMap.put(key, clazz);
|
}
|
|
}
|