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 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 errorMessages; private List warningMessages; private List 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; } }