2021与蓝度共同重构项目,服务端
liuhaonan
2021-12-09 43fb2ac961d450659a270f1db9053ec545327aa1
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/FrameBuilder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.sandu.ximon.admin.manager.iot.frame;
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.FunctionCodeEnum;
/**
 * @author chenjiantian
 * @date 2021/12/6 17:02
 * æž„建一个请求帧
 */
public class FrameBuilder {
    private IRequestFrame iRequestFrame;
    private IRequestInnerFrame innerFrame;
    private String functionCode;
    private String orderType;
    private FrameBuilder(String functionCode) {
        this.functionCode = functionCode;
    }
    public static FrameBuilder builderA1() {
        return new FrameBuilder(FunctionCodeEnum.MAIN_BOARD_CONFIG.getCode());
    }
    public static FrameBuilder builderA2() {
        return new FrameBuilder(FunctionCodeEnum.MAIN_BOARD_CONTROL.getCode());
    }
    public static FrameBuilder builderA5() {
        return new FrameBuilder(FunctionCodeEnum.DATA_TRANSPORT_DATA.getCode());
    }
    public FrameBuilder orderType(String orderType) {
        this.orderType = orderType;
        return this;
    }
    public FrameBuilder innerFrame(IRequestInnerFrame innerFrame) {
        this.innerFrame = innerFrame;
        return this;
    }
    public IRequestFrame build() {
        if (orderType == null || innerFrame == null) {
            throw new RuntimeException("参数不能为空");
        }
        if (FunctionCodeEnum.MAIN_BOARD_CONFIG.getCode().equals(functionCode)) {
            iRequestFrame = new A1Frame(orderType, innerFrame);
        } else if (FunctionCodeEnum.MAIN_BOARD_CONTROL.getCode().equals(functionCode)) {
            iRequestFrame = new A2Frame(orderType, innerFrame);
        }  else if (FunctionCodeEnum.DATA_TRANSPORT_DATA.getCode().equals(functionCode)) {
            iRequestFrame = new A5Frame(orderType, innerFrame);
        } else {
            throw new RuntimeException("找不到符合条件的请求帧");
        }
        return iRequestFrame;
    }
}