/*******************************************************************************
* Copyright 2006 - 2012 Vienna University of Technology,
* Department of Software Technology and Interactive Systems, IFS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package eu.scape_project.planning.plato.wfview;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import eu.scape_project.planning.model.Plan;
import eu.scape_project.planning.plato.wfview.full.AnalyseResultsView;
import eu.scape_project.planning.plato.wfview.full.CreateExecutablePlanView;
import eu.scape_project.planning.plato.wfview.full.DefineAlternativesView;
import eu.scape_project.planning.plato.wfview.full.DefineBasisView;
import eu.scape_project.planning.plato.wfview.full.DefinePreservationPlanView;
import eu.scape_project.planning.plato.wfview.full.DefineSampleRecordsView;
import eu.scape_project.planning.plato.wfview.full.DevelopExperimentsView;
import eu.scape_project.planning.plato.wfview.full.EvaluateExperimentsView;
import eu.scape_project.planning.plato.wfview.full.IdentifyRequirementsView;
import eu.scape_project.planning.plato.wfview.full.RunExperimentsView;
import eu.scape_project.planning.plato.wfview.full.SetImportanceFactorsView;
import eu.scape_project.planning.plato.wfview.full.TakeGoDecisionView;
import eu.scape_project.planning.plato.wfview.full.TransformMeasuredValuesView;
import eu.scape_project.planning.plato.wfview.full.ValidatePlanView;
/**
* Factory class responsible for creating ViewWorkflow-steps.
*
* @author Markus Hamm, Michael Kraxner
*/
public class ViewWorkflowFactory implements Serializable {
private static final long serialVersionUID = 1031838310289177775L;
/**
* Note: We only retrieve handles to the WF step beans, to create them later
*/
@Inject
private Instance<DefineBasisView> defineBasisSource;
@Inject
private Instance<DefineSampleRecordsView> defineSampleRecordsSource;
@Inject
private Instance<IdentifyRequirementsView> identifyRequirementsSource;
@Inject
private Instance<DefineAlternativesView> defineAlternativesSource;
@Inject
private Instance<TakeGoDecisionView> takeGoDecisionSource;
@Inject
private Instance<DevelopExperimentsView> developExperimentsSource;
@Inject
private Instance<RunExperimentsView> runExperimentsSource;
@Inject
private Instance<EvaluateExperimentsView> evaluateExperimentsSource;
@Inject
private Instance<TransformMeasuredValuesView> transformMeasuredValuesSource;
@Inject
private Instance<SetImportanceFactorsView> setImportanceFactorsSource;
@Inject
private Instance<AnalyseResultsView> analyseResultsSource;
@Inject
private Instance<CreateExecutablePlanView> createExecutablePlanSource;
@Inject
private Instance<DefinePreservationPlanView> definePreservationPlanSource;
@Inject
private Instance<ValidatePlanView> validatePlanSource;
/**
* Method responsible for constructing the appropriate viewWorkflow-steps
* for a given plan.
*
* @param plan
* Plan to construct the viewWorkflow-steps for
* @return List of viewWorkflow-steps.
*/
public List<AbstractView> constructWorkflowSteps(Plan plan) {
List<AbstractView> result = new ArrayList<AbstractView>();
result.add(defineBasisSource.get());
result.add(defineSampleRecordsSource.get());
result.add(identifyRequirementsSource.get());
result.add(defineAlternativesSource.get());
result.add(takeGoDecisionSource.get());
result.add(developExperimentsSource.get());
result.add(runExperimentsSource.get());
result.add(evaluateExperimentsSource.get());
result.add(transformMeasuredValuesSource.get());
result.add(setImportanceFactorsSource.get());
result.add(analyseResultsSource.get());
result.add(createExecutablePlanSource.get());
result.add(definePreservationPlanSource.get());
result.add(validatePlanSource.get());
return result;
}
// --------------- getter/setter ---------------
public Instance<DefineBasisView> getDefineBasisSource() {
return defineBasisSource;
}
public void setDefineBasisSource(Instance<DefineBasisView> defineBasisSource) {
this.defineBasisSource = defineBasisSource;
}
public Instance<DefineSampleRecordsView> getDefineSampleRecordsSource() {
return defineSampleRecordsSource;
}
public void setDefineSampleRecordsSource(Instance<DefineSampleRecordsView> defineSampleRecordsSource) {
this.defineSampleRecordsSource = defineSampleRecordsSource;
}
public Instance<IdentifyRequirementsView> getIdentifyRequirementsSource() {
return identifyRequirementsSource;
}
public void setIdentifyRequirementsSource(Instance<IdentifyRequirementsView> identifyRequirementsSource) {
this.identifyRequirementsSource = identifyRequirementsSource;
}
public Instance<DefineAlternativesView> getDefineAlternativesSource() {
return defineAlternativesSource;
}
public void setDefineAlternativesSource(Instance<DefineAlternativesView> defineAlternativesSource) {
this.defineAlternativesSource = defineAlternativesSource;
}
public Instance<TakeGoDecisionView> getTakeGoDecisionSource() {
return takeGoDecisionSource;
}
public void setTakeGoDecisionSource(Instance<TakeGoDecisionView> takeGoDecisionSource) {
this.takeGoDecisionSource = takeGoDecisionSource;
}
public Instance<DevelopExperimentsView> getDevelopExperimentsSource() {
return developExperimentsSource;
}
public void setDevelopExperimentsSource(Instance<DevelopExperimentsView> developExperimentsSource) {
this.developExperimentsSource = developExperimentsSource;
}
public Instance<RunExperimentsView> getRunExperimentsSource() {
return runExperimentsSource;
}
public void setRunExperimentsSource(Instance<RunExperimentsView> runExperimentsSource) {
this.runExperimentsSource = runExperimentsSource;
}
public Instance<EvaluateExperimentsView> getEvaluateExperimentsSource() {
return evaluateExperimentsSource;
}
public void setEvaluateExperimentsSource(Instance<EvaluateExperimentsView> evaluateExperimentsSource) {
this.evaluateExperimentsSource = evaluateExperimentsSource;
}
public Instance<TransformMeasuredValuesView> getTransformMeasuredValuesSource() {
return transformMeasuredValuesSource;
}
public void setTransformMeasuredValuesSource(Instance<TransformMeasuredValuesView> transformMeasuredValuesSource) {
this.transformMeasuredValuesSource = transformMeasuredValuesSource;
}
public Instance<SetImportanceFactorsView> getSetImportanceFactorsSource() {
return setImportanceFactorsSource;
}
public void setSetImportanceFactorsSource(Instance<SetImportanceFactorsView> setImportanceFactorsSource) {
this.setImportanceFactorsSource = setImportanceFactorsSource;
}
public Instance<AnalyseResultsView> getAnalyseResultsSource() {
return analyseResultsSource;
}
public void setAnalyseResultsSource(Instance<AnalyseResultsView> analyseResultsSource) {
this.analyseResultsSource = analyseResultsSource;
}
public Instance<CreateExecutablePlanView> getCreateExecutablePlanSource() {
return createExecutablePlanSource;
}
public void setCreateExecutablePlanSource(Instance<CreateExecutablePlanView> createExecutablePlanSource) {
this.createExecutablePlanSource = createExecutablePlanSource;
}
public Instance<DefinePreservationPlanView> getDefinePreservationPlanSource() {
return definePreservationPlanSource;
}
public void setDefinePreservationPlanSource(Instance<DefinePreservationPlanView> definePreservationPlanSource) {
this.definePreservationPlanSource = definePreservationPlanSource;
}
public Instance<ValidatePlanView> getValidatePlanSource() {
return validatePlanSource;
}
public void setValidatePlanSource(Instance<ValidatePlanView> validatePlanSource) {
this.validatePlanSource = validatePlanSource;
}
}