using System;
using System.Collections.Generic;
using GitHub.DistributedTask.Expressions2;
using GitHub.DistributedTask.ObjectTemplating.Tokens;
using GitHub.DistributedTask.Pipelines.ContextData;
namespace GitHub.DistributedTask.Pipelines.ObjectTemplating
{
///
/// Evaluates parts of the workflow DOM. For example, a job strategy or step inputs.
///
public interface IPipelineTemplateEvaluator
{
Boolean EvaluateStepContinueOnError(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
String EvaluateStepDisplayName(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
Dictionary EvaluateStepEnvironment(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions,
StringComparer keyComparer);
Boolean EvaluateStepIf(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions,
IEnumerable> expressionState);
Dictionary EvaluateStepInputs(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
Int32 EvaluateStepTimeout(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
JobContainer EvaluateJobContainer(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
Dictionary EvaluateJobOutput(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
TemplateToken EvaluateEnvironmentUrl(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
Dictionary EvaluateJobDefaultsRun(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
IList> EvaluateJobServiceContainers(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
Snapshot EvaluateJobSnapshotRequest(
TemplateToken token,
DictionaryContextData contextData,
IList expressionFunctions);
}
}