SpatialDataReference.java
package de.dlr.shepard.context.references.spatialdata.entities;
import de.dlr.shepard.common.util.Constants;
import de.dlr.shepard.context.references.basicreference.entities.BasicReference;
import de.dlr.shepard.data.spatialdata.endpoints.SpatialDataParamParser;
import de.dlr.shepard.data.spatialdata.io.SpatialDataQueryParams;
import de.dlr.shepard.data.spatialdata.model.SpatialDataContainer;
import java.util.Collections;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
@NodeEntity
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SpatialDataReference extends BasicReference {
/**
* For testing purposes only
*
* @param id identifies the entity
*/
public SpatialDataReference(long id) {
super(id);
}
private String geometryFilter;
private String measurementsFilter;
private Long startTime;
private Long endTime;
private String metadata;
private Integer limit;
private Integer skip;
@ToString.Exclude
@Relationship(type = Constants.IS_IN_CONTAINER)
private SpatialDataContainer spatialDataContainer;
public SpatialDataQueryParams toSpatialDataQueryParams() {
return new SpatialDataQueryParams(
SpatialDataParamParser.parseGeometryFilter(geometryFilter).orElse(null),
SpatialDataParamParser.parseMetadata(metadata).orElse(Collections.emptyMap()),
SpatialDataParamParser.parseMeasurementsFilter(measurementsFilter).orElse(Collections.emptyList()),
startTime,
endTime,
limit,
skip
);
}
}