public void RegisterDependency(TaskDependency dep) { if (dep.CleanAfterBuild) { MaybeToBeCleaned.Add(dep.Task); } else { NotToBeCleaned.Add(dep.Task); } }
public void After(TaskDependency dep) { T agg = Stack.Pop(); agg.Finally(); if (Stack.Count > 0) { var taskAggregate = Stack.Peek(); taskAggregate.Add(agg); } else { Aggregate = agg; } }
public void Walk(TaskDependency dep, Action <TaskDependency> beforeDependencies, Action <TaskDependency> afterDependencies, HashSet <IObsoleteTask> tasksAlreadyDone) { if (tasksAlreadyDone.Contains(dep.Task)) { return; } tasksAlreadyDone.Add(dep.Task); if (beforeDependencies != null) { beforeDependencies(dep); } foreach (TaskDependency dependency in GetNonNullDependencies(dep.Task)) { Walk(dependency, beforeDependencies, afterDependencies, tasksAlreadyDone); } if (afterDependencies != null) { afterDependencies(dep); } }
private void CleanIfNotAlreadyCleaned(TaskDependency dep, IBounceCommand command) { OnceOnlyCleaner.EnsureInvokedAtLeastOnce(dep.Task, command); }
private void BuildIfNotAlreadyBuilt(TaskDependency dep, IBounceCommand command) { OnceOnlyBuilder.EnsureInvokedAtLeastOnce(dep.Task, command); }
private void DescribeIfNotDescribed(TaskDependency dep, IBounceCommand command) { OnceOnlyDescriber.EnsureInvokedAtLeastOnce(dep.Task, command); }
public TaskPurity(TaskDependency dep) { Purity = dep.Task.IsPure; }
public void Before(TaskDependency dep) { Stack.Push(CreateAggregate(dep)); }
public void Walk(TaskDependency task, Action <TaskDependency> beforeDependencies, Action <TaskDependency> afterDependencies) { Walk(task, beforeDependencies, afterDependencies, new HashSet <IObsoleteTask>()); }