package com.njzscloud.common.core.ex;

import lombok.AllArgsConstructor;

import java.util.Collections;

/**
 * 期望值
 * <p>HTTP 响应时 响应体的 JSON 内容</p>
 */
@AllArgsConstructor
public enum ExpectData {

    /**
     * 响应: null
     */
    NULL_DATA(null),

    /**
     * 响应: []
     */
    ARR_DATA(Collections.emptyList()),

    /**
     * 响应: {}
     */
    KV_DATA(Collections.emptyMap()),

    /**
     * 响应: ""
     */
    STR_BLANK_DATA(""),

    /**
     * 响应: 0
     */
    NUM_ZERO_DATA(0),

    /**
     * 响应: false
     */
    BOOL_FALSE_DATA(Boolean.FALSE),

    /**
     * 响应: true
     */
    BOOL_TRUE_DATA(Boolean.TRUE),

    /**
     * 无响应体
     */
    VOID_DATA(Void.TYPE);

    private final Object data;

    @SuppressWarnings("unchecked")
    public <T> T getData() {
        return (T) data;
    }
}
