package net.thucydides.core.requirements;
import net.thucydides.core.guice.Injectors;
import net.thucydides.core.requirements.model.RequirementsConfiguration;
import net.thucydides.core.util.EnvironmentVariables;
import net.thucydides.core.util.Inflector;
import java.util.List;
public class AbstractRequirementsTagProvider {
protected final EnvironmentVariables environmentVariables;
protected final String rootDirectory;
protected final RequirementsConfiguration requirementsConfiguration;
protected final RequirementsService requirementsService;
protected AbstractRequirementsTagProvider(EnvironmentVariables environmentVariables) {
this.environmentVariables = environmentVariables;
this.requirementsConfiguration = new RequirementsConfiguration(environmentVariables);
this.requirementsService = Injectors.getInjector().getInstance(RequirementsService.class);
this.rootDirectory = getDefaultRootDirectory();
}
protected String humanReadableVersionOf(String name) {
String underscoredName = Inflector.getInstance().underscore(name);
return Inflector.getInstance().humanize(underscoredName);
}
protected String getDefaultType(int level) {
List<String> types = getRequirementTypes();
if (level > types.size() - 1) {
return types.get(types.size() - 1);
} else {
return types.get(level);
}
}
protected List<String> getRequirementTypes() {
return requirementsConfiguration.getRequirementTypes();
}
protected String getDefaultRootDirectory() {
return requirementsConfiguration.getDefaultRootDirectory();
}
}