diff --git a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/IOperationDto.java b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/IOperationDto.java index e41d8208dbdc4828b3c3b7298aa903cc519ec954..2d8db3b4e3c2c890679bb2f9a438088ceac21487 100644 --- a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/IOperationDto.java +++ b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/IOperationDto.java @@ -39,7 +39,6 @@ package fr.gouv.vitamui.commons.api.domain; import java.time.OffsetDateTime; import fr.gouv.vitamui.commons.api.enums.OperationStatus; -import fr.gouv.vitamui.commons.api.enums.OperationType; /** * Interface describing a basic operation. @@ -52,9 +51,9 @@ public interface IOperationDto { void setId(String id); - OperationType getType(); + String getType(); - void setType(OperationType type); + void setType(String type); Integer getTenantIdentifier(); diff --git a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/OperationDto.java b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/OperationDto.java index f49d7e87d43d658cd0e8b814c602489eb3e73a67..990c02510571ecda4b72ba4795ff9faa32e3ad89 100644 --- a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/OperationDto.java +++ b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/OperationDto.java @@ -44,7 +44,6 @@ import javax.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import fr.gouv.vitamui.commons.api.enums.OperationStatus; -import fr.gouv.vitamui.commons.api.enums.OperationType; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; @@ -63,7 +62,7 @@ public class OperationDto extends IdDto implements IOperationDto { private static final long serialVersionUID = -3962480065920989325L; @NotNull - private OperationType type; + private String type; @NotNull private Integer tenantIdentifier; diff --git a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/enums/OperationStatus.java b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/enums/OperationStatus.java index bb15c4d931f78ba9e1e350ea7b11c5e7d8da781e..727ae5f148a6a1195ddb1f7a0fc11c1f454c33cc 100644 --- a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/enums/OperationStatus.java +++ b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/enums/OperationStatus.java @@ -36,12 +36,30 @@ */ package fr.gouv.vitamui.commons.api.enums; +import lombok.Getter; + +@Getter public enum OperationStatus { - WAITING, - PAUSED, - RUNNING, - FAILED, - CANCELED, - COMPLETED; + CANCELED (10), + WAITING(4), + PAUSED(3), + RUNNING(2), + FAILED(0), + COMPLETED(0); + + + + /** + * Value allowing to order status (can be used when an update of the. + */ + private final int priority; + + /** + * Constructor. + * @param priority Priority of the status + */ + private OperationStatus(int priority) { + this.priority = priority; + } } diff --git a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/domain/Operation.java b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/domain/Operation.java index fa485cbd75cab9a7a1b7de648ba9698f6ec7b167..4b8d2dfcb0fdc1028cf9085d360c6d18975eff8a 100644 --- a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/domain/Operation.java +++ b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/domain/Operation.java @@ -62,7 +62,7 @@ import lombok.ToString; public class Operation extends IdDocument { @NotNull - private OperationType type; + private String type; private String author; diff --git a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationFactory.java b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationFactory.java index 6805fd65ea365dfe997d5bab00de10edda9511cb..1841f60d9c32efff3bb8e7077ca242d4e23d4c5c 100644 --- a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationFactory.java +++ b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationFactory.java @@ -53,7 +53,7 @@ public class OperationFactory { public static OperationDto createOperation(String author, Integer tenantIdentifier, OperationType type) { final OperationDto operation = createOperation(type); - return initOperation(operation, author, tenantIdentifier, type); + return initOperation(operation, author, tenantIdentifier, type.toString()); } protected static OperationDto createOperation(OperationType type) { @@ -66,7 +66,7 @@ public class OperationFactory { } protected static OperationDto initOperation(OperationDto operation, String author, Integer tenantIdentifier, - OperationType type) { + String type) { operation.setStatus(OperationStatus.RUNNING); operation.setTenantIdentifier(tenantIdentifier); operation.setCreationDate(OffsetDateTime.now()); diff --git a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationService.java b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationService.java index 1f548d54e7f7ebc3d3ff6eb537f86bfc4c301318..b820c4d084cd98ec3072ac63d737eea6b7beed71 100644 --- a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationService.java +++ b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/service/OperationService.java @@ -49,7 +49,6 @@ import javax.validation.ValidatorFactory; import fr.gouv.vitamui.commons.api.converter.Converter; import fr.gouv.vitamui.commons.api.domain.OperationDto; -import fr.gouv.vitamui.commons.api.enums.OperationType; import fr.gouv.vitamui.commons.mongo.converter.OperationConverter; import fr.gouv.vitamui.commons.mongo.dao.CustomSequenceRepository; import fr.gouv.vitamui.commons.mongo.dao.OperationRepository; @@ -60,7 +59,7 @@ public class OperationService extends VitamUICrudService<OperationDto, Operation protected final OperationRepository<Operation> repository; - private final Map<OperationType, Converter> customConverters = new HashMap<>(); + private final Map<String, Converter> customConverters = new HashMap<>(); private final Converter<OperationDto, Operation> defaultConverter; @@ -126,7 +125,7 @@ public class OperationService extends VitamUICrudService<OperationDto, Operation return getConverter(dto.getType()).convertDtoToEntity(dto); } - protected Converter<OperationDto, Operation> getConverter(final OperationType type) { + protected Converter<OperationDto, Operation> getConverter(final String type) { if (!customConverters.containsKey(type)) { return defaultConverter; } @@ -138,7 +137,7 @@ public class OperationService extends VitamUICrudService<OperationDto, Operation * @param type Type of the operation. * @param converter Converter linked to the type. */ - public void addConverter(final OperationType type, final Converter<? extends OperationDto, ? extends Operation> converter) { + public void addConverter(final String type, final Converter<? extends OperationDto, ? extends Operation> converter) { customConverters.put(type, converter); }