package cn.iocoder.yudao.module.iot.dal.dataobject.thingmodel.model.dataType;
|
|
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
import lombok.Data;
|
|
/**
|
* IoT ThingModelDataSpecs 抽象类
|
*
|
* 用于表示物模型数据的通用类型,根据具体的 "dataType" 字段动态映射到对应的子类
|
* 提供多态支持,适用于不同类型的数据结构序列化和反序列化场景
|
*
|
* @author HUIHUI
|
*/
|
@Data
|
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "dataType", visible = true)
|
@JsonSubTypes({
|
@JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "int"),
|
@JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "float"),
|
@JsonSubTypes.Type(value = ThingModelNumericDataSpec.class, name = "double"),
|
@JsonSubTypes.Type(value = ThingModelDateOrTextDataSpecs.class, name = "text"),
|
@JsonSubTypes.Type(value = ThingModelDateOrTextDataSpecs.class, name = "date"),
|
@JsonSubTypes.Type(value = ThingModelBoolOrEnumDataSpecs.class, name = "bool"),
|
@JsonSubTypes.Type(value = ThingModelBoolOrEnumDataSpecs.class, name = "enum"),
|
@JsonSubTypes.Type(value = ThingModelArrayDataSpecs.class, name = "array"),
|
@JsonSubTypes.Type(value = ThingModelStructDataSpecs.class, name = "struct")
|
})
|
public abstract class ThingModelDataSpecs {
|
|
/**
|
* 数据类型
|
*/
|
private String dataType;
|
|
}
|