package org.jnario.feature.jvmmodel;
import com.google.common.base.Objects;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtext.xbase.lib.CollectionLiterals;
import org.jnario.Executable;
import org.jnario.feature.feature.Background;
import org.jnario.feature.feature.Feature;
import org.jnario.feature.feature.Scenario;
import org.jnario.jvmmodel.ExecutableProvider;
@SuppressWarnings("all")
public class FeatureExecutableProvider implements ExecutableProvider {
public List<? extends Executable> getExecutables(final Executable specification) {
return this.doGetExecutables(specification);
}
protected List<? extends Executable> _doGetExecutables(final Scenario scenario) {
return scenario.getSteps();
}
protected List<? extends Executable> _doGetExecutables(final Executable e) {
return CollectionLiterals.<Executable>emptyList();
}
protected List<? extends Executable> _doGetExecutables(final Feature feature) {
ArrayList<Scenario> _xblockexpression = null;
{
Background _background = feature.getBackground();
boolean _equals = Objects.equal(_background, null);
if (_equals) {
return feature.getScenarios();
}
Background _background_1 = feature.getBackground();
final ArrayList<Scenario> result = CollectionLiterals.<Scenario>newArrayList(_background_1);
EList<Scenario> _scenarios = feature.getScenarios();
result.addAll(_scenarios);
_xblockexpression = result;
}
return _xblockexpression;
}
public List<? extends Executable> doGetExecutables(final Executable feature) {
if (feature instanceof Feature) {
return _doGetExecutables((Feature)feature);
} else if (feature instanceof Scenario) {
return _doGetExecutables((Scenario)feature);
} else if (feature != null) {
return _doGetExecutables(feature);
} else {
throw new IllegalArgumentException("Unhandled parameter types: " +
Arrays.<Object>asList(feature).toString());
}
}
}