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> objectMap; static { init(); } public static CallObject get(Operator operator) { try { String key = operator.getObject(); key = key.toLowerCase(); Class 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>(); 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 clazz) { key = key.toLowerCase(); objectMap.put(key, clazz); } }