package org.alien4cloud.tosca.editor.operations;
import org.alien4cloud.tosca.model.CSARDependency;
import alien4cloud.utils.AlienUtils;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
import java.util.Set;
/**
* Recover the topology when dependencies have changed.
*/
@Getter
@Setter
@NoArgsConstructor
public class RecoverTopologyOperation extends AbstractEditorOperation {
/**
* dependencies that have changed since last added in a given topology
*/
Set<CSARDependency> updatedDependencies;
/**
* List of the operations generated to recover the topology
*
*/
List<AbstractEditorOperation> recoveringOperations;
private String lastOperationId;
@Override
@JsonProperty(value = "resume", access = JsonProperty.Access.READ_ONLY)
public String commitMessage() {
StringBuilder commitMessage = new StringBuilder("Topology recovering: ");
if (CollectionUtils.isEmpty(recoveringOperations)) {
commitMessage.append("Nothing to do.");
} else {
for (AbstractEditorOperation recoverageOperation : AlienUtils.safe(recoveringOperations)) {
commitMessage.append("\n\t").append(recoverageOperation.commitMessage());
}
}
return commitMessage.toString();
}
}