/*******************************************************************************
* Copyright (c) 2012 BMW Car IT and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.jnario.feature.linking;
import static com.google.common.collect.Iterables.concat;
import static com.google.common.collect.Iterables.filter;
import static java.util.Collections.emptyList;
import static java.util.Collections.singleton;
import org.jnario.feature.feature.Feature;
import org.jnario.feature.feature.FeatureFile;
import org.jnario.feature.feature.Scenario;
import org.jnario.feature.feature.Step;
public class FeatureQuery {
public Iterable<Step> allSteps(FeatureFile featureFile){
Iterable<Step> result = emptyList();
for (Feature feature : filter(featureFile.getXtendTypes(), Feature.class)) {
if(feature == null){
return result;
}
Iterable<Scenario> scenarios = feature.getScenarios();
if(feature.getBackground() != null){
scenarios = concat(scenarios, singleton(feature.getBackground()));
}
for(Scenario scenario : scenarios){
result = concat(result, scenario.getSteps());
}
}
return result;
}
}