Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,25 @@ public ResponseEntity<ParametersSetsGroup> deleteSet(@PathVariable("modelName")
}

@GetMapping(value = "/")
@Operation(summary = "Get models names")
@Operation(summary = "Get simple infos of all models")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "names of all models")})
@ApiResponse(responseCode = "200", description = "simple infos of all models")})
public ResponseEntity<List<SimpleModel>> getModels() {
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(modelService.getModels());
}

@GetMapping(value = "/names")
@Operation(summary = "Get all model names")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "list of all model names")})
public ResponseEntity<List<String>> getModelNames() {
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(modelService.getModels().stream()
.map(SimpleModel::getName)
.toList());
}

@DeleteMapping(value = "/")
@Operation(summary = "Delete a list of models")
@ApiResponses(value = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.gridsuite.mapping.server.utils.ParameterOrigin;

import java.util.List;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;

Expand All @@ -25,6 +26,8 @@
@NoArgsConstructor
public class Model {

private UUID id;

private String modelName;

private EquipmentType equipmentType;
Expand All @@ -40,6 +43,7 @@ public class Model {
private List<VariablesSet> variablesSets;

public Model(ModelEntity modelEntity) {
id = modelEntity.getId();
modelName = modelEntity.getModelName();
equipmentType = modelEntity.getEquipmentType();
defaultModel = modelEntity.isDefaultModel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,22 @@
import lombok.NoArgsConstructor;
import org.gridsuite.mapping.server.model.ModelParameterEntity;

import java.util.UUID;

/**
* @author Mathieu Scalbert <mathieu.scalbert at rte-france.com>
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ModelParameter {
private UUID id;
private String name;
private String value;

public ModelParameter(ModelParameterEntity modelParameterEntity) {
name = modelParameterEntity.getName();
value = modelParameterEntity.getValue();
this.id = modelParameterEntity.getId();
this.name = modelParameterEntity.getName();
this.value = modelParameterEntity.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import org.gridsuite.mapping.server.utils.ParameterOrigin;
import org.gridsuite.mapping.server.utils.ParameterType;

import java.util.UUID;

/**
* @author Mathieu Scalbert <mathieu.scalbert at rte-france.com>
*/
Expand All @@ -21,6 +23,8 @@
@AllArgsConstructor
public class ModelParameterDefinition {

private UUID id;

private String name;

private ParameterType type;
Expand All @@ -32,6 +36,7 @@ public class ModelParameterDefinition {
private String fixedValue;

public ModelParameterDefinition(ModelParameterDefinitionEntity modelParameterDefinitionEntity, ParameterOrigin origin, String originName) {
this.id = modelParameterDefinitionEntity.getId();
this.name = modelParameterDefinitionEntity.getName();
this.type = modelParameterDefinitionEntity.getType();
this.origin = origin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import org.gridsuite.mapping.server.model.ModelVariableDefinitionEntity;
import org.gridsuite.mapping.server.utils.VariableType;

import java.util.UUID;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
Expand All @@ -21,6 +23,8 @@
@NoArgsConstructor
public class ModelVariableDefinition {

private UUID id;

private String name;

private VariableType type;
Expand All @@ -30,6 +34,7 @@ public class ModelVariableDefinition {
private Double factor;

public ModelVariableDefinition(ModelVariableDefinitionEntity modelVariableDefinitionEntity) {
this.id = modelVariableDefinitionEntity.getId();
this.name = modelVariableDefinitionEntity.getName();
this.type = modelVariableDefinitionEntity.getType();
this.unit = modelVariableDefinitionEntity.getUnit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

/**
Expand All @@ -21,20 +22,17 @@
@Data
@NoArgsConstructor
public class ParametersSet {
private UUID id;
private String name;
private List<ModelParameter> parameters;
@JsonIgnore
private Date lastModifiedDate;

public ParametersSet(ModelParameterSetEntity modelParameterSetEntity) {
id = modelParameterSetEntity.getId();
name = modelParameterSetEntity.getName();
parameters = modelParameterSetEntity.getParameters().stream().map(ModelParameter::new).collect(Collectors.toList());
lastModifiedDate = modelParameterSetEntity.getLastModifiedDate();
}

public ParametersSet(String name, List<ModelParameter> parameters) {
this.name = name;
this.parameters = parameters;
lastModifiedDate = new Date();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.gridsuite.mapping.server.utils.SetGroupType;

import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

/**
Expand All @@ -23,6 +24,8 @@
@NoArgsConstructor
public class ParametersSetsGroup {

private UUID id;

private String name;

private SetGroupType type;
Expand All @@ -32,9 +35,10 @@ public class ParametersSetsGroup {
private String modelName;

public ParametersSetsGroup(ModelSetsGroupEntity setsGroupEntity) {
id = setsGroupEntity.getId();
name = setsGroupEntity.getName();
type = setsGroupEntity.getType();
sets = setsGroupEntity.getSets().stream().map(ParametersSet::new).collect(Collectors.toList());
modelName = setsGroupEntity.getModelName();
modelName = setsGroupEntity.getModel().getModelName();
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package org.gridsuite.mapping.server.dto.models;

import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.mapping.server.utils.SetGroupType;

import java.util.UUID;

@NoArgsConstructor
@Getter
public class SimpleGroup {
private final String name;
private final SetGroupType type;
private final int setsNumber;
private UUID id;
private String name;
private SetGroupType type;
private int setsNumber;

SimpleGroup(ParametersSetsGroup group) {
id = group.getId();
name = group.getName();
type = group.getType();
setsNumber = group.getSets().size();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
package org.gridsuite.mapping.server.dto.models;

import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.mapping.server.utils.EquipmentType;

import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

@NoArgsConstructor
@Getter
public class SimpleModel {
private final String name;
private final EquipmentType type;
private final List<SimpleGroup> groups;
private UUID id;
private String name;
private EquipmentType type;
private List<SimpleGroup> groups;

public SimpleModel(Model model) {
id = model.getId();
name = model.getModelName();
type = model.getEquipmentType();
groups = model.getSetsGroups().stream().map(SimpleGroup::new).collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.gridsuite.mapping.server.model.ModelVariableSetEntity;

import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

/**
Expand All @@ -22,10 +23,12 @@
@AllArgsConstructor
@NoArgsConstructor
public class VariablesSet {
private UUID id;
private String name;
private List<ModelVariableDefinition> variableDefinitions;

public VariablesSet(ModelVariableSetEntity variableSetEntity) {
this.id = variableSetEntity.getId();
this.name = variableSetEntity.getName();
this.variableDefinitions = variableSetEntity.getVariableDefinitions().stream().map(ModelVariableDefinition::new).collect(Collectors.toList());
}
Expand Down
22 changes: 13 additions & 9 deletions src/main/java/org/gridsuite/mapping/server/model/ModelEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
*/
package org.gridsuite.mapping.server.model;

import jakarta.persistence.*;
import lombok.*;
import org.gridsuite.mapping.server.dto.models.Model;
import org.gridsuite.mapping.server.utils.EquipmentType;
import org.gridsuite.mapping.server.utils.ParameterOrigin;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;

import jakarta.persistence.*;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
Expand All @@ -23,22 +23,23 @@
/**
* @author Mathieu Scalbert <mathieu.scalbert at rte-france.com>
*/
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "models")
@Table(name = "model", indexes = {@Index(name = "model_name_index", columnList = "name")})
public class ModelEntity implements Serializable {

// Could be replaced with UUID, but we lose the ease of use of names
@Id
@EqualsAndHashCode.Include
@Column(name = "model_name")
@Column(name = "id")
private UUID id;

@Column(name = "name", nullable = false)
private String modelName;

@Enumerated(EnumType.STRING)
@Column(name = "equipment_type")
private EquipmentType equipmentType;

Expand All @@ -54,16 +55,19 @@ public class ModelEntity implements Serializable {
// must exclude CascadeType.REMOVE to avoid unexpected cascade on delete a ModelVariableDefinitionEntity
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH})
@JoinTable(
name = "models_model_variable_definitions",
joinColumns = {@JoinColumn(name = "model_name")},
inverseJoinColumns = {@JoinColumn(name = "variable_definition_name")}
name = "model_model_variable_definition",
joinColumns = {@JoinColumn(name = "model_id", referencedColumnName = "id",
foreignKey = @ForeignKey(name = "model_model_variable_definition_model_id_fk"))},
inverseJoinColumns = {@JoinColumn(name = "variable_definition_id", referencedColumnName = "id",
foreignKey = @ForeignKey(name = "model_model_variable_definition_variable_definition_id_fk"))}
)
private Set<ModelVariableDefinitionEntity> variableDefinitions = LinkedHashSet.newLinkedHashSet(0);

@ManyToMany(targetEntity = ModelVariableSetEntity.class, mappedBy = "models", cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH})
private Set<ModelVariableSetEntity> variableSets = LinkedHashSet.newLinkedHashSet(0);

public ModelEntity(Model modelToConvert) {
id = modelToConvert.getId() == null ? UUID.randomUUID() : modelToConvert.getId();
modelName = modelToConvert.getModelName();
equipmentType = modelToConvert.getEquipmentType();
defaultModel = modelToConvert.isDefaultModel();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,36 @@
package org.gridsuite.mapping.server.model;

import lombok.*;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.gridsuite.mapping.server.utils.ParameterOrigin;

import jakarta.persistence.*;
import java.io.Serializable;

@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "models_model_parameter_definitions")
@Table(name = "model_model_parameter_definition")
public class ModelModelParameterDefinitionEntity implements Serializable {
@EmbeddedId
private ModelModelParameterDefinitionId id;

@EqualsAndHashCode.Include
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "model_name")
@MapsId("modelName")
@JoinColumn(name = "model_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "model_model_parameter_definition_model_id_fk"))
@MapsId("modelId")
private ModelEntity model;

@EqualsAndHashCode.Include
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH})
@JoinColumn(name = "parameter_definition_name")
@MapsId("parameterDefinitionName")
@JoinColumn(name = "parameter_definition_id", referencedColumnName = "id",
foreignKey = @ForeignKey(name = "model_model_parameter_definition_parameter_definition_id_fk"))
@MapsId("parameterDefinitionId")
private ModelParameterDefinitionEntity parameterDefinition;

@Enumerated(EnumType.STRING)
@Column(name = "origin")
private ParameterOrigin origin;

Expand All @@ -40,7 +42,7 @@ public ModelModelParameterDefinitionEntity(ModelEntity model, ModelParameterDefi
this.parameterDefinition = parameterDefinition;
this.origin = origin;
this.originName = originName;
this.id = new ModelModelParameterDefinitionId(model.getModelName(), parameterDefinition.getName());
this.id = new ModelModelParameterDefinitionId(model.getId(), parameterDefinition.getId());
}

}
Loading