/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.workflow.execution.api;
import de.rcenvironment.core.communication.common.InstanceNodeSessionId;
import de.rcenvironment.core.communication.common.LogicalNodeId;
import de.rcenvironment.core.component.execution.api.ComponentExecutionInformation;
import de.rcenvironment.core.component.execution.api.ExecutionInformation;
import de.rcenvironment.core.component.workflow.model.api.WorkflowDescription;
/**
* Workflow specific extension of {@link ExecutionInformation}.
*
* @author Doreen Seider
*/
public interface WorkflowExecutionInformation extends ExecutionInformation, Comparable<WorkflowExecutionInformation> {
/**
* @return time the execution was started
*/
long getStartTime();
/**
* @return the underlying {@link WorkflowDescription}
*/
WorkflowDescription getWorkflowDescription();
/**
* @param identifier execution identifier of the component instance to get information for
* @return {@link ComponentExecutionInformation} for the component instance
*/
ComponentExecutionInformation getComponentExecutionInformation(String identifier);
/**
* @return {@link InstanceNodeSessionId} of the instance the execution was started from
*/
LogicalNodeId getNodeIdStartedExecution();
/**
* @return additional information optionally provided at workflow start
*/
String getAdditionalInformationProvidedAtStart();
/**
* Gets current workflow state. The {@link WorkflowState} might be out-dated at the time this method is called. It is snapshot at the
* time, the {@link WorkflowExecutionInformation} instance was requested.
*
* @return {@link WorkflowState} (might be out-dated)
*/
WorkflowState getWorkflowState();
/**
* @return identifier the workflow is stored under in the data management, <code>null</code> if no data management entry exists for the
* workflow (yet)
*/
Long getWorkflowDataManagementId();
}