2026-06-24 f4bd1f3c89d906131495a0aca5aaf82966378510
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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;
 
}