package com.oguerreiro.resilient.activities.period.process;

import java.util.List;

import com.oguerreiro.resilient.activity.GenericGuide;
import com.oguerreiro.resilient.activity.GenericResult;
import com.oguerreiro.resilient.activity.Task;
import com.oguerreiro.resilient.domain.Organization;
import com.oguerreiro.resilient.domain.Period;
import com.oguerreiro.resilient.domain.PeriodVersion;
import com.oguerreiro.resilient.domain.Variable;
import com.oguerreiro.resilient.expression.OutputVariableExpressionFunctions;

public interface GenerateOutputDataTask extends Task<GenericResult, GenericGuide<Period>> {
  void calculateOrganization(GenericGuide<Period> guide, Organization organization, List<Variable> outputVariables);

  void calculateOutput(Variable outputVariable, Period period, PeriodVersion periodVersion, Organization organization,
      OutputVariableExpressionFunctions expressionFunctions);
}
