gcube-cms-suite/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/lifecycle/LifecycleInformation.java

84 lines
2.5 KiB
Java
Raw Normal View History

2022-02-14 12:23:13 +01:00
package org.gcube.application.geoportal.common.model.document.lifecycle;
2021-11-24 14:47:59 +01:00
2022-03-07 17:59:06 +01:00
import com.fasterxml.jackson.annotation.JsonIgnore;
2022-02-23 17:13:22 +01:00
import com.fasterxml.jackson.annotation.JsonProperty;
2021-11-24 14:47:59 +01:00
import lombok.*;
2022-01-17 14:19:59 +01:00
import java.util.ArrayList;
2021-12-01 11:13:34 +01:00
import java.util.List;
2022-02-14 12:23:13 +01:00
@Data
2021-11-24 14:47:59 +01:00
public class LifecycleInformation {
2021-12-01 11:13:34 +01:00
2022-03-29 18:06:09 +02:00
public static final class CommonPhases{
public static final String DRAFT_PHASE="DRAFT";
}
2022-02-23 17:13:22 +01:00
//COMMON PHASES
2022-02-18 18:12:02 +01:00
2022-02-23 17:13:22 +01:00
2022-02-18 18:12:02 +01:00
public static final String PHASE="_phase";
public static final String LAST_INVOKED_STEP="_lastInvokedStep";
public static final String LAST_OPERATION_STATUS="_lastOperationStatus";
public static final String ERROR_MESSAGES="_errorMessages";
public static final String WARNING_MESSAGES="_warningMessages";
public static final String TRIGGERED_EVENTS="_triggeredEvents";
2022-03-28 16:35:30 +02:00
public static final String NOTES="_notes";
2022-01-14 12:31:11 +01:00
public static enum Status{
2022-01-17 14:19:59 +01:00
OK,ERROR,WARNING
2021-12-01 11:13:34 +01:00
}
2022-02-23 17:13:22 +01:00
@JsonProperty(PHASE)
2021-12-01 11:13:34 +01:00
private String phase;
2022-02-23 17:13:22 +01:00
@JsonProperty(LAST_INVOKED_STEP)
2022-02-14 12:23:13 +01:00
private String lastInvokedStep;
2022-02-23 17:13:22 +01:00
@JsonProperty(LAST_OPERATION_STATUS)
2021-12-01 11:13:34 +01:00
private Status lastOperationStatus;
2022-02-23 17:13:22 +01:00
@JsonProperty(ERROR_MESSAGES)
2021-12-01 11:13:34 +01:00
private List<String> errorMessages;
2022-02-23 17:13:22 +01:00
@JsonProperty(WARNING_MESSAGES)
2021-12-01 11:13:34 +01:00
private List<String> warningMessages;
2022-02-23 17:13:22 +01:00
@JsonProperty(TRIGGERED_EVENTS)
2022-02-14 12:23:13 +01:00
private List<TriggeredEvents> triggeredEvents;
2022-03-28 16:35:30 +02:00
@JsonProperty(NOTES)
private String notes;
@JsonIgnore
public TriggeredEvents getLastEvent(){
if(triggeredEvents==null || triggeredEvents.isEmpty()) return null;
return triggeredEvents.get(triggeredEvents.size()-1);
}
2021-12-01 11:13:34 +01:00
2022-03-07 17:59:06 +01:00
@JsonIgnore
2022-02-17 16:01:39 +01:00
public LifecycleInformation addErrorMessage(String msg){
2022-01-17 14:19:59 +01:00
if(errorMessages==null)
errorMessages=new ArrayList<>();
errorMessages.add(msg);
2022-02-17 16:01:39 +01:00
return this;
2022-01-17 14:19:59 +01:00
}
2022-03-07 17:59:06 +01:00
@JsonIgnore
2022-02-17 16:01:39 +01:00
public LifecycleInformation addWarningMessage(String msg){
2022-01-17 14:19:59 +01:00
if(warningMessages==null)
warningMessages=new ArrayList<>();
warningMessages.add(msg);
2022-02-17 16:01:39 +01:00
return this;
2022-01-17 14:19:59 +01:00
}
2022-03-07 17:59:06 +01:00
@JsonIgnore
2022-02-17 16:01:39 +01:00
public LifecycleInformation addEventReport(TriggeredEvents info){
2022-02-14 12:23:13 +01:00
if(triggeredEvents==null) triggeredEvents=new ArrayList<>();
triggeredEvents.add(info);
2022-02-17 16:01:39 +01:00
return this;
}
2022-03-07 17:59:06 +01:00
@JsonIgnore
2022-02-17 16:01:39 +01:00
public LifecycleInformation cleanState(){
setLastOperationStatus(null);
setLastInvokedStep(null);
setTriggeredEvents(new ArrayList<>());
setErrorMessages(new ArrayList<>());
setWarningMessages(new ArrayList<>());
return this;
2022-02-14 12:23:13 +01:00
}
2021-11-24 14:47:59 +01:00
}