package cucumber.contrib.grammar.step; import com.google.common.collect.Lists; import java.util.List; /** * @author <a href="http://twitter.com/aloyer">@aloyer</a> */ public class Feature { private final String uri; private List<Scenario> scenarios = Lists.newArrayList(); private List<ScenarioOutline> scenarioOutlines = Lists.newArrayList(); public Feature(String uri) { this.uri = uri; } public void add(Scenario scenario) { scenarios.add(scenario); } public void add(ScenarioOutline scenarioOutline) { scenarioOutlines.add(scenarioOutline); } public void traverse(FeatureVisitor visitor) { visitor.enterFeature(this); for(Scenario scenario : scenarios) scenario.traverse(visitor); for(ScenarioOutline scenarioOutline : scenarioOutlines) scenarioOutline.traverse(visitor); visitor.exitFeature(this); } public String uri() { return uri; } }