66 lines
1.4 KiB
Plaintext
66 lines
1.4 KiB
Plaintext
package ${packageName};
|
|
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
public class MsgHandlerIds {
|
|
<#list messageInfos as message>
|
|
public static final int ${message.name} = ${message.id?c};
|
|
</#list>
|
|
|
|
//消息CLASS与消息ID的对应关系<消息class, 消息ID>
|
|
private static final Map<Class<? extends MsgHandler>, Integer> classToId = new HashMap<>();
|
|
//消息ID与消息CLASS的对应关系<消息ID, 消息class>
|
|
private static final Map<Integer, Class<? extends MsgHandler>> idToClass = new HashMap<>();
|
|
|
|
static {
|
|
//初始化消息CLASS与消息ID的对应关系
|
|
initClassToId();
|
|
//初始化消息ID与消息CLASS的对应关系
|
|
initIdToClass();
|
|
}
|
|
|
|
/**
|
|
* 获取消息ID
|
|
* @param clazz
|
|
* @return
|
|
*/
|
|
public static int getIdByClass(Class<? extends MsgHandler> clazz) {
|
|
return classToId.get(clazz);
|
|
}
|
|
|
|
/**
|
|
* 获取消息CLASS
|
|
* @param clazz
|
|
* @return
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
public static <T> T getClassById(int msgId) {
|
|
return (T) idToClass.get(msgId);
|
|
}
|
|
|
|
|
|
/**
|
|
* 初始化消息CLASS与消息ID的对应关系
|
|
*/
|
|
private static void initClassToId() {
|
|
<#list messageInfos as message>
|
|
classToId.put(${message.name}.class, ${message.name});
|
|
</#list>
|
|
}
|
|
|
|
/**
|
|
* 初始化消息ID与消息CLASS的对应关系
|
|
*/
|
|
private static void initIdToClass() {
|
|
<#list messageInfos as message>
|
|
idToClass.put(${message.name},${message.name}.class);
|
|
</#list>
|
|
}
|
|
|
|
}
|
|
|