/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.workflow.execution.headless.internal;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import de.rcenvironment.core.component.workflow.execution.api.FinalWorkflowState;
/**
* Used to record results if workflows are executed and verified.
*
* @author Doreen Seider
* @author Hendrik Abbenhaus
*/
public interface HeadlessWorkflowExecutionVerificationRecorder {
/**
* Announces an error for the given workflow.
*
* @param wfFile workflow file that causes the error
* @param errorMessage message related to the error occurred
*/
void addWorkflowError(File wfFile, String errorMessage);
/**
* Announces a {@link FinalWorkflowState} for the given workflow file.
*
* @param wfFile workflow file with given {@link FinalWorkflowState}
* @param wfLogFiles workflow log of the execution
* @param finalState {@link FinalWorkflowState} of the given workflow file
* @param executionDuration duration of the workflow execution
* @return <code>true</code> if workflow behaved as expected otherwise <code>false</code>
* @throws IOException thrown if accessing the workflow log file failed
*/
boolean addWorkflowExecutionResult(File wfFile, File[] wfLogFiles, FinalWorkflowState finalState, long executionDuration)
throws IOException;
/**
* Sets start- and end-time of the current job to calculate duration and total time in verification report.
*
* @param start starttime of this job
* @param end endtime of this job
*/
void setStartAndEndTime(Date start, Date end);
}