package tzatziki.analysis.step;
import com.google.common.collect.FluentIterable;
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 final String name;
private List<String> tags = Lists.newArrayList();
private Background background;
private List<Scenario> scenarios = Lists.newArrayList();
private List<ScenarioOutline> scenarioOutlines = Lists.newArrayList();
public Feature(String uri, String name) {
this.uri = uri;
this.name = name;
}
public Background background() {
return background;
}
public void background(Background background) {
this.background = background;
}
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;
}
public String name() {
return name;
}
public void addTags(List<String> tags) {
this.tags.addAll(tags);
}
public List<String> getTags() {
return tags;
}
public FluentIterable<Scenario> scenario() {
return FluentIterable.from(scenarios);
}
public FluentIterable<ScenarioOutline> scenarioOutlines() {
return FluentIterable.from(scenarioOutlines);
}
}