1 package de.dlr.shepard.context.references.spatialdata.entities;
2
3 import de.dlr.shepard.common.util.Constants;
4 import de.dlr.shepard.context.references.basicreference.entities.BasicReference;
5 import de.dlr.shepard.data.spatialdata.endpoints.SpatialDataParamParser;
6 import de.dlr.shepard.data.spatialdata.io.SpatialDataQueryParams;
7 import de.dlr.shepard.data.spatialdata.model.SpatialDataContainer;
8 import java.util.Collections;
9 import lombok.Data;
10 import lombok.EqualsAndHashCode;
11 import lombok.NoArgsConstructor;
12 import lombok.ToString;
13 import org.neo4j.ogm.annotation.NodeEntity;
14 import org.neo4j.ogm.annotation.Relationship;
15
16 @NodeEntity
17 @Data
18 @NoArgsConstructor
19 @EqualsAndHashCode(callSuper = true)
20 public class SpatialDataReference extends BasicReference {
21
22
23
24
25
26
27 public SpatialDataReference(long id) {
28 super(id);
29 }
30
31 private String geometryFilter;
32 private String measurementsFilter;
33 private Long startTime;
34 private Long endTime;
35 private String metadata;
36 private Integer limit;
37 private Integer skip;
38
39 @ToString.Exclude
40 @Relationship(type = Constants.IS_IN_CONTAINER)
41 private SpatialDataContainer spatialDataContainer;
42
43 public SpatialDataQueryParams toSpatialDataQueryParams() {
44 return new SpatialDataQueryParams(
45 SpatialDataParamParser.parseGeometryFilter(geometryFilter).orElse(null),
46 SpatialDataParamParser.parseMetadata(metadata).orElse(Collections.emptyMap()),
47 SpatialDataParamParser.parseMeasurementsFilter(measurementsFilter).orElse(Collections.emptyList()),
48 startTime,
49 endTime,
50 limit,
51 skip
52 );
53 }
54 }