package net.techreadiness.plugin.action.task.snapshot; import java.util.List; import javax.inject.Inject; import net.techreadiness.plugin.service.SnapshotWindowService; import net.techreadiness.plugin.service.object.SnapshotWindow; import net.techreadiness.service.DataModificationStatus; import net.techreadiness.service.common.ValidationError; import net.techreadiness.service.exception.ValidationServiceException; import net.techreadiness.ui.task.BaseTaskFlowAction; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; public class SaveAction extends BaseTaskFlowAction<SnapshotTaskFlowData, SnapshotTaskFlowDefinition> { private static final long serialVersionUID = 1L; private SnapshotWindow snapshotWindow; @Inject SnapshotWindowService snapshotWindowService; @Inject DataModificationStatus modStatus; // @CoreSecured({ }) @Action(value = "save", results = { @Result(name = "success", location = "/task/snapshot/add", type = "redirect"), @Result(name = "invalid", type = "lastAction", params = { "fieldName", "snapshotWindow", "actionName", "add" }) }) public String save() { SnapshotWindow newSnapshotWindow = null; try { newSnapshotWindow = snapshotWindowService.addOrUpdate(getServiceContext(), snapshotWindow); modStatus.setMessage(getText("ready.task.snapshot.add.success")); } catch (ValidationServiceException vse) { List<ValidationError> errors = vse.getFaultInfo().getAttributeErrors(); for (ValidationError validationError : errors) { addFieldError("snapshotWindow." + validationError.getFieldName(), validationError.getOnlineMessage()); } } if (hasErrors()) { return "invalid"; } getTaskFlowData().getSnapshots().add(newSnapshotWindow); return SUCCESS; } public SnapshotWindow getSnapshotWindow() { return snapshotWindow; } public void setSnapshotWindow(SnapshotWindow snapshotWindow) { this.snapshotWindow = snapshotWindow; } }