gherkin.GherkinDialectProvider Maven / Gradle / Ivy
package gherkin;
import gherkin.ast.Location;
import gherkin.deps.com.google.gson.Gson;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
public class GherkinDialectProvider implements IGherkinDialectProvider {
private static Map>> DIALECTS;
private final String default_dialect_name;
static {
Gson gson = new Gson();
try {
Reader dialects = new InputStreamReader(GherkinDialectProvider.class.getResourceAsStream("gherkin-languages.json"), "UTF-8");
DIALECTS = gson.fromJson(dialects, Map.class);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
public GherkinDialectProvider(String default_dialect_name) {
this.default_dialect_name = default_dialect_name;
}
public GherkinDialectProvider() {
this("en");
}
public GherkinDialect getDefaultDialect() {
return getDialect(default_dialect_name, null);
}
@Override
public GherkinDialect getDialect(String language, Location location) {
Map> map = DIALECTS.get(language);
if (map == null) {
throw new ParserException.NoSuchLanguageException(language, location);
}
return new GherkinDialect(language, map);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy