package org.gcube.application.geoportal.common.model.document.filesets; import lombok.Data; import lombok.NoArgsConstructor; import org.bson.Document; import java.util.List; public class GCubeSDILayer extends Materialization{ @Data @NoArgsConstructor public static class BBOX extends Document { public static final BBOX WORLD=new BBOX(180d,90d,-180d,-90d); public static final BBOX WORLD_3D=new BBOX(180d,90d,-180d,-90d); public static final String MAX_X="_maxX"; public static final String MAX_Y="_maxY"; public static final String MAX_Z="_maxZ"; public static final String MIN_X="_minX"; public static final String MIN_Y="_minY"; public static final String MIN_Z="_minZ"; public BBOX(Double maxX,Double minX,Double maxY,Double minY,Double maxZ,Double minZ){ this(maxX,minX,maxY,minY); setMaxZ(maxZ); setMinZ(minZ); } public BBOX(Double maxX,Double minX,Double maxY,Double minY){ setMaxX(maxX); setMinX(minX); setMaxY(maxY); setMinY(minY); } public void setMaxX(Double d){this.put(MAX_X,d);} public void setMaxY(Double d){this.put(MAX_Y,d);} public void setMaxZ(Double d){this.put(MAX_Z,d);} public void setMinX(Double d){this.put(MIN_X,d);} public void setMinY(Double d){this.put(MIN_Y,d);} public void setMinZ(Double d){this.put(MIN_Z,d);} public Double getMinY(){return (Double) this.getOrDefault(MIN_Y,-90d);} public Double getMaxY(){return (Double) this.getOrDefault(MAX_Y,90d);} public Double getMinX(){return (Double) this.getOrDefault(MIN_X,-180d);} public Double getMaxX(){return (Double) this.getOrDefault(MAX_X,180d);} public Double getMinZ(){return (Double) this.getOrDefault(MIN_Z,null);} public Double getMaxZ(){return (Double) this.getOrDefault(MAX_Z,null);} } public static final String GCUBE_SDY_LAYER_TYPE="gcube-sdi-layer"; public static final String OGC_LINKS="_ogcLinks"; public static final String B_BOX = "_bbox"; public static final String PLATFORM_INFO="_platformInfo"; public GCubeSDILayer(){ super(GCUBE_SDY_LAYER_TYPE); } public List getOGCLinks(){return this.get(OGC_LINKS, List.class);} public BBOX getBBox(){return this.get(B_BOX,BBOX.class);} public List getPlatformInfo(){return this.get(PLATFORM_INFO,List.class);} }