wangmengmeng
2024-12-24 24432a361d5c6bd6f3d8c008693e9f1155d62517
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.dji.sdk.cloudapi.device;
 
import com.dji.sdk.cloudapi.livestream.VideoTypeEnum;
import com.dji.sdk.exception.CloudSDKErrorEnum;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import org.springframework.util.StringUtils;
 
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.Objects;
 
/**
 * @author sean
 * @version 1.7
 * @date 2023/6/25
 */
public class VideoId {
 
    @NotNull
    private String droneSn;
 
    @NotNull
    private PayloadIndex payloadIndex;
 
    @NotNull
    private VideoTypeEnum videoType = VideoTypeEnum.NORMAL;
 
    public VideoId() {
    }
 
    @JsonCreator
    public VideoId(String videoId) {
        if (!StringUtils.hasText(videoId)) {
            return;
        }
        String[] videoIdArr = Arrays.stream(videoId.split("/")).toArray(String[]::new);
        if (videoIdArr.length != 3) {
            throw new CloudSDKException(CloudSDKErrorEnum.INVALID_PARAMETER);
        }
        this.droneSn = videoIdArr[0];
        this.payloadIndex = new PayloadIndex(videoIdArr[1]);
        this.videoType = VideoTypeEnum.find(videoIdArr[2].split("-")[0]);
    }
 
    @Override
    @JsonValue
    public String toString() {
        if (Objects.isNull(payloadIndex)) {
            return "";
        }
        return String.format("%s/%s/%s-0", droneSn, payloadIndex.toString(), videoType.getType());
    }
 
    public String getDroneSn() {
        return droneSn;
    }
 
    public VideoId setDroneSn(String droneSn) {
        this.droneSn = droneSn;
        return this;
    }
 
    public PayloadIndex getPayloadIndex() {
        return payloadIndex;
    }
 
    public VideoId setPayloadIndex(PayloadIndex payloadIndex) {
        this.payloadIndex = payloadIndex;
        return this;
    }
 
    public VideoTypeEnum getVideoType() {
        return videoType;
    }
 
    public VideoId setVideoType(VideoTypeEnum videoType) {
        this.videoType = videoType;
        return this;
    }
}