View Javadoc
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     * For testing purposes only
24     *
25     * @param id identifies the entity
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  }