package com.qianwen.core.tool.metadata.types; import com.alibaba.fastjson.JSON; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; import com.qianwen.core.tool.utils.StringPool; /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/types/GeoShape.class */ public class GeoShape implements Serializable { private Type type; private List coordinates; public void setType(final Type type) { this.type = type; } public void setCoordinates(final List coordinates) { this.coordinates = coordinates; } public Type getType() { return this.type; } public List getCoordinates() { return this.coordinates; } /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/metadata/types/GeoShape$Type.class */ public enum Type { Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection; public static Type of(Object val) { Type[] values; for (Type value : values()) { if (value.name().equalsIgnoreCase(String.valueOf(val))) { return value; } } throw new IllegalArgumentException("unsupported GeoShape type:" + val); } public List parseCoordinates(Object coordinates) { if (coordinates instanceof Collection) { return new ArrayList((Collection) coordinates); } if (coordinates instanceof String) { if (((String) coordinates).startsWith(StringPool.LEFT_SQ_BRACKET)) { return JSON.parseArray(String.valueOf(coordinates)); } return new ArrayList(Arrays.asList(((String) coordinates).split(StringPool.COMMA))); } throw new IllegalArgumentException("unsupported coordinates type :" + coordinates); } } public static GeoShape of(Object value) { if (value instanceof GeoShape) { return (GeoShape) value; } if (value instanceof GeoPoint) { return fromPoint((GeoPoint) value); } if ((value instanceof String) && ((String) value).startsWith(StringPool.LEFT_BRACE)) { value = JSON.parseObject(String.valueOf(value)); } if (value instanceof Map) { return of((Map) value); } throw new IllegalArgumentException("unsupported GeoShape:" + value); } public static GeoShape of(Map map) { GeoShape shape = new GeoShape(); shape.type = Type.of(map.get("type")); shape.coordinates = shape.type.parseCoordinates(map.get("coordinates")); return shape; } public static GeoShape fromPoint(GeoPoint point) { GeoShape shape = new GeoShape(); shape.type = Type.Point; shape.coordinates = new ArrayList(Arrays.asList(Double.valueOf(point.getLon()), Double.valueOf(point.getLat()))); return shape; } }