From 48d176adc0b32538fcb73e90ffcc6df86ed5c567 Mon Sep 17 00:00:00 2001 From: Makhtar DIAGNE <makhtar.diagne@teamdlab.com> Date: Tue, 5 May 2020 13:34:47 +0200 Subject: [PATCH] [DLAB-3453] Update operation in order to extend it --- .../commons/api/domain/IOperationDto.java | 5 ++-- .../commons/api/domain/OperationDto.java | 3 +- .../commons/api/enums/OperationStatus.java | 30 +++++++++++++++---- .../commons/mongo/domain/Operation.java | 2 +- .../mongo/service/OperationFactory.java | 4 +-- .../mongo/service/OperationService.java | 7 ++--- 6 files changed, 33 insertions(+), 18 deletions(-) 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 e41d8208..2d8db3b4 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 f49d7e87..990c0251 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 bb15c4d9..727ae5f1 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 fa485cbd..4b8d2dfc 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 6805fd65..1841f60d 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 1f548d54..b820c4d0 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); } -- GitLab