天天看点

fix协议封装挑战-ClientHandlerFactory&ClientMessageHandler

package cs.mina.client.handler;

import java.util.HashMap;
import java.util.Map;

/*
 *@author(huangxiaoping)
 *@date 2013-10-11
 */
public class ClientHandlerFactory {
  private static Map<String, ClientMessageHandler> handlerMap=new HashMap<String,ClientMessageHandler>();
  static{
    handlerMap.put("0", new HeartbeatMessageHandler());
    handlerMap.put("5", new LogoutMessageHandler());
    handlerMap.put("4", new SequenceResetMessageHandler());
    handlerMap.put("A", new LogonMessageHandler());
    handlerMap.put("1", new TestRequestMessageHandler());
    handlerMap.put("2", new ResendRequestMessageHandler());
    handlerMap.put("3", new RejectMessageHandler());
    handlerMap.put("8", new ExecutionReportMessageHandler());
    handlerMap.put("9", new OrderCancelRejectMessageHandler());
    handlerMap.put("r", new OrderMassCancelReportMessageHandler());
    handlerMap.put("AI", new QuoteStatusReportMessageHandler());
    handlerMap.put("AE", new TradeCaptureReportMessageHandler());
    handlerMap.put("AR", new TradeCaptureReportAckMessageHandler());
    handlerMap.put("j", new BusinessMessageRejectMessageHandler());
    handlerMap.put("CV", new PartyEntitlementReportMessageHandler());
  }
  
  public static ClientMessageHandler getHandler(String key){
    return handlerMap.get(key);
  }
}      
package cs.mina.client.handler;

import org.apache.mina.core.session.IoSession;

import cs.mina.codec.msg.BaseMsg;

/*
 *@author(huangxiaoping)
 *@date 2013-10-11
 */
public interface ClientMessageHandler {
  void doHandler(IoSession session,BaseMsg message);
}