package com.dji.sdk.cloudapi.map; import com.dji.sdk.exception.CloudSDKException; import java.util.Optional; /** * @author sean * @version 0.2 * @date 2021/11/30 */ public enum ElementTypeEnum { POINT(ElementResourceTypeEnum.POINT), LINE_STRING(ElementResourceTypeEnum.LINE_STRING), POLYGON(ElementResourceTypeEnum.POLYGON); private ElementResourceTypeEnum typeEnum; ElementTypeEnum(ElementResourceTypeEnum typeEnum) { this.typeEnum = typeEnum; } public static Optional findType(int val) { if (POINT.typeEnum.getType() == val) { return Optional.of(new ElementPointGeometry()); } if (LINE_STRING.typeEnum.getType() == val) { return Optional.of(new ElementLineStringGeometry()); } if (POLYGON.typeEnum.getType() == val) { return Optional.of(new ElementPolygonGeometry()); } return Optional.empty(); } public String getDesc() { return typeEnum.getTypeName(); } public static int findVal(String desc) { if (POINT.typeEnum.getTypeName().equals(desc)) { return POINT.typeEnum.getType(); } if (LINE_STRING.typeEnum.getTypeName().equals(desc)) { return LINE_STRING.typeEnum.getType(); } if (POLYGON.typeEnum.getTypeName().equals(desc)) { return POLYGON.typeEnum.getType(); } throw new CloudSDKException("unknown type:" + desc); } }