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

62 lines
1.8 KiB
Java

package org.gcube.application.geoportal.common.model.document.lifecycle;
import lombok.*;
import java.util.ArrayList;
import java.util.List;
@Data
public class LifecycleInformation {
public static final String DRAFT_PHASE="DRAFT";
public static final String PUBLISHED_PHASE="PUBLISHED";
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";
public static enum Status{
OK,ERROR,WARNING
}
private String phase;
private String lastInvokedStep;
private Status lastOperationStatus;
private List<String> errorMessages;
private List<String> warningMessages;
private List<TriggeredEvents> triggeredEvents;
public LifecycleInformation addErrorMessage(String msg){
if(errorMessages==null)
errorMessages=new ArrayList<>();
errorMessages.add(msg);
return this;
}
public LifecycleInformation addWarningMessage(String msg){
if(warningMessages==null)
warningMessages=new ArrayList<>();
warningMessages.add(msg);
return this;
}
public LifecycleInformation addEventReport(TriggeredEvents info){
if(triggeredEvents==null) triggeredEvents=new ArrayList<>();
triggeredEvents.add(info);
return this;
}
public LifecycleInformation cleanState(){
setLastOperationStatus(null);
setLastInvokedStep(null);
setTriggeredEvents(new ArrayList<>());
setErrorMessages(new ArrayList<>());
setWarningMessages(new ArrayList<>());
return this;
}
}