ExperimentalTimeseriesEntity.java

  1. package de.dlr.shepard.timeseries.model;

  2. import com.fasterxml.jackson.annotation.JsonIgnore;
  3. import de.dlr.shepard.timeseries.model.enums.ExperimentalDataPointValueType;
  4. import jakarta.persistence.Column;
  5. import jakarta.persistence.Entity;
  6. import jakarta.persistence.EnumType;
  7. import jakarta.persistence.Enumerated;
  8. import jakarta.persistence.GeneratedValue;
  9. import jakarta.persistence.GenerationType;
  10. import jakarta.persistence.Id;
  11. import jakarta.persistence.Table;

  12. @Entity
  13. @Table(name = "timeseries")
  14. public class ExperimentalTimeseriesEntity {

  15.   @Id
  16.   @GeneratedValue(strategy = GenerationType.IDENTITY)
  17.   private int id;

  18.   @Column(name = "container_id", nullable = false)
  19.   private long containerId;

  20.   @Column(columnDefinition = "TEXT", nullable = false)
  21.   private String measurement;

  22.   @Column(columnDefinition = "TEXT", nullable = false)
  23.   private String field;

  24.   @Column(columnDefinition = "TEXT", nullable = false)
  25.   private String device;

  26.   @Column(columnDefinition = "TEXT", nullable = false)
  27.   private String location;

  28.   @Column(name = "symbolic_name", columnDefinition = "TEXT", nullable = false)
  29.   private String symbolicName;

  30.   @Enumerated(EnumType.STRING)
  31.   @Column(name = "value_type", columnDefinition = "TEXT", nullable = false)
  32.   private ExperimentalDataPointValueType valueType;

  33.   public ExperimentalTimeseriesEntity() {}

  34.   public ExperimentalTimeseriesEntity(
  35.     long containerId,
  36.     String measurement,
  37.     String field,
  38.     String device,
  39.     String location,
  40.     String symbolicName,
  41.     ExperimentalDataPointValueType valueType
  42.   ) {
  43.     this.containerId = containerId;
  44.     this.measurement = measurement;
  45.     this.field = field;
  46.     this.device = device;
  47.     this.location = location;
  48.     this.symbolicName = symbolicName;
  49.     this.valueType = valueType;
  50.   }

  51.   public ExperimentalTimeseriesEntity(
  52.     long containerId,
  53.     ExperimentalTimeseries timeseries,
  54.     ExperimentalDataPointValueType valueType
  55.   ) {
  56.     this(
  57.       containerId,
  58.       timeseries.getMeasurement(),
  59.       timeseries.getField(),
  60.       timeseries.getDevice(),
  61.       timeseries.getLocation(),
  62.       timeseries.getSymbolicName(),
  63.       valueType
  64.     );
  65.   }

  66.   public int getId() {
  67.     return id;
  68.   }

  69.   public String getMeasurement() {
  70.     return measurement;
  71.   }

  72.   public long getContainerId() {
  73.     return containerId;
  74.   }

  75.   public String getDevice() {
  76.     return device;
  77.   }

  78.   public String getLocation() {
  79.     return location;
  80.   }

  81.   public String getSymbolicName() {
  82.     return symbolicName;
  83.   }

  84.   public String getField() {
  85.     return field;
  86.   }

  87.   public ExperimentalDataPointValueType getValueType() {
  88.     return valueType;
  89.   }

  90.   @JsonIgnore
  91.   public String getUniqueId() {
  92.     return String.join("-", measurement, device, location, symbolicName, field, valueType.toString());
  93.   }
  94. }