package cn.iocoder.yudao.module.iot.dal.dataobject.rule.config;
|
|
import cn.iocoder.yudao.module.iot.enums.rule.IotDataSinkTypeEnum;
|
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
import lombok.Data;
|
|
/**
|
* IoT IotDataBridgeConfig 抽象类
|
*
|
* 用于表示数据目的配置数据的通用类型,根据具体的 "type" 字段动态映射到对应的子类
|
* 提供多态支持,适用于不同类型的数据结构序列化和反序列化场景。
|
*
|
* @author HUIHUI
|
*/
|
@Data
|
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible = true)
|
@JsonSubTypes({
|
@JsonSubTypes.Type(value = IotDataSinkHttpConfig.class, name = "1"),
|
@JsonSubTypes.Type(value = IotDataSinkTcpConfig.class, name = "2"),
|
@JsonSubTypes.Type(value = IotDataSinkWebSocketConfig.class, name = "3"),
|
@JsonSubTypes.Type(value = IotDataSinkMqttConfig.class, name = "10"),
|
@JsonSubTypes.Type(value = IotDataSinkDatabaseConfig.class, name = "20"),
|
@JsonSubTypes.Type(value = IotDataSinkRedisConfig.class, name = "21"),
|
@JsonSubTypes.Type(value = IotDataSinkRocketMQConfig.class, name = "30"),
|
@JsonSubTypes.Type(value = IotDataSinkRabbitMQConfig.class, name = "31"),
|
@JsonSubTypes.Type(value = IotDataSinkKafkaConfig.class, name = "32"),
|
})
|
public abstract class IotAbstractDataSinkConfig {
|
|
/**
|
* 配置类型
|
*
|
* 枚举 {@link IotDataSinkTypeEnum#getType()}
|
*/
|
private String type;
|
|
}
|