ResponseResultMain.java 2.43 KB
package com.yanzuoguang.util.vo;

import io.swagger.annotations.ApiModelProperty;

/**
 * 接口之间的通讯结果
 *
 * @author 颜佐光
 */
public class ResponseResultMain<T, M> extends ResponseResult<T> {

    /**
     * 返回数据
     */
    @ApiModelProperty(value = "返回数据", notes = "返回的具体数据", required = true)
    private M main;

    public M getMain() {
        return main;
    }

    public void setMain(M main) {
        this.main = main;
    }

    /**
     * 构造函数
     */
    public ResponseResultMain() {
        super();
    }


    /**
     * 构造函数
     *
     * @param code    结果状态
     * @param message 结果消息
     */
    public ResponseResultMain(String code, String message) {
        super(code, message);
    }

    /**
     * 构造函数
     *
     * @param code    结果状态
     * @param message 结果熊希
     * @param data    结果
     */
    public ResponseResultMain(String code, String message, T data) {
        super(code, message, data);
    }

    /**
     * 构造函数
     *
     * @param code    结果状态
     * @param message 结果熊希
     * @param data    结果
     */
    public ResponseResultMain(String code, String message, T data, M main, Object target) {
        super(code, message, data, target);
        this.main = main;
    }

    /**
     * 构造成功结果
     *
     * @param data 数据
     * @param <T>  数据类型
     * @return 一个请求成功的数据集合
     */
    public static final <T, M> ResponseResultMain<T, M> result(T data, M main) {
        return result(data, main, false);
    }

    /**
     * 构造成功结果,不允许为空
     *
     * @param data 数据
     * @param <T>  数据类型
     * @return 一个请求成功的数据集合
     */
    public static final <T, M> ResponseResultMain<T, M> resultAllowNull(T data, M main) {
        return result(data, main, true);
    }


    /**
     * 构造成功结果
     *
     * @param data      数据
     * @param main      主数据
     * @param allowNull 允许为空
     * @param <T>       数据类型
     * @return 一个请求成功的数据集合
     */
    public static final <T, M> ResponseResultMain<T, M> result(T data, M main, boolean allowNull) {
        ResponseResultMain<T, M> ret = new ResponseResultMain<T, M>();
        ret.setData(data);
        ret.setMain(main);
        initDataStatus(ret, data, allowNull);
        return ret;
    }
}