Message解析流程(转)

时间:2021-09-22 21:04:46
Message的解析作为一个共同组件。对应不同格式的msg文件有不同的实现类来解析。
用SAXParser.

1:Final class MessageResourceManager
   在Start方法中调用(启动加载):MessageResourceManager.load("SAXMessageResource", msgFileList);
   在execute方法中使用:MessageEntity msgEntity = MessageResourceManager.getMessageEntity(msgId);

2: 在MessageResourceManager中有以下方法:
MessageResourceManager msgMgr;
 void load (String className, List msgFileNames){
    msgMgr = new MessageResourceManager(className, msgFileNames);
}

构造方法:
private MessageResourceManager(String className, List msgFileNames){
    msgMgr = MessageResourceFactory.getMessageResource(className, msgFileNames);
}

3: 在MessageResourceFactory中有以下方法:
public static MessageResource getMessageResource(String className, List msgFileNames){
    Class msgClass = Class.forName(className);
    Class[] paramTypes = {java.util.List.class};
    Constructor constructor = msgClass.getConstructor(paramTypes);
    Object[] params = {msgFileNames};
    return (MessageResource)constructor.newInstance(params);
}

4:在SAXMessageResource类中实现,文件打开,数据取得,让MessageResourceManager的方法去调用。
http://hiyachen.blog.chinaunix.net
一套完整的msg不同方式数据取得共通框架(可以用各种XML解析)。