AbstractVirtualBoxHandler.java 1001 Bytes
package com.example.mina.base;

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

/**
 * @author 杜云山
 * @date 21/03/05
 */
public abstract class AbstractVirtualBoxHandler<REQUEST extends BaseRequestMessage, RESPONSE extends BaseResponseMessage>
        extends IoHandlerAdapter {

    public AbstractVirtualBoxHandler() {
        initMatrix();
    }

    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {

        if (message instanceof BaseRequestMessage) {
            BaseResponseMessage responseMessage = handleMessage((REQUEST) message);
            session.write(responseMessage);
        }
    }

    /**
     * 初始化矩阵以及该设备的一些参数
     */
    protected abstract void initMatrix();

    /**
     * 处理消息
     *
     * @param requestMessage 请求
     * @return 返回消息
     */
    protected abstract RESPONSE handleMessage(REQUEST requestMessage);

}