You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
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 jakarta.validation.constraints.NotNull; |
|
import org.springframework.util.StringUtils; |
|
|
|
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; |
|
} |
|
}
|
|
|