From d66b876be0c5d4b60c1793b67873dfdf353dbf10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Rasmusson?= Date: Sat, 16 Jul 2016 14:20:49 +0200 Subject: [PATCH] [Java8] Updated java8 for the use of Gherkin v4.0.0. --- java8/pom.xml | 26 +++++++++++++------- java8/src/main/code_generator/I18n.java8.txt | 12 ++++----- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/java8/pom.xml b/java8/pom.xml index 604f27860c..5ad77a4a29 100644 --- a/java8/pom.xml +++ b/java8/pom.xml @@ -58,7 +58,8 @@ - def templateSource = new File(project.baseDir, "src${File.separator}main${File.separator}code_generator${File.separator}I18n.java8.txt").getText() - def className = "${i18n.underscoredIsoCode}".capitalize() - def binding = [ "i18n":i18n, "className":className ] - def template = engine.createTemplate(templateSource).make(binding) - def file = new File(project.baseDir, "target${File.separator}generated-sources${File.separator}i18n${File.separator}java8${File.separator}cucumber${File.separator}api${File.separator}java8${File.separator}${className}.java") - file.parentFile.mkdirs() - file.write(template.toString(), "UTF-8") +def unsupported = ["em"] // The generated files for Emoij do not compile. +def dialectProvider = new GherkinDialectProvider() + +GherkinDialectProvider.DIALECTS.keySet().each { language -> + def dialect = dialectProvider.getDialect(language, null) + def normalized_language = dialect.language.replaceAll("[\\s-]", "_").toLowerCase() + if (!unsupported.contains(normalized_language)) { + def templateSource = new File(project.baseDir, "src${File.separator}main${File.separator}code_generator${File.separator}I18n.java8.txt").getText() + def className = "${normalized_language}".capitalize() + def binding = [ "i18n":dialect, "className":className ] + def template = engine.createTemplate(templateSource).make(binding) + def file = new File(project.baseDir, "target${File.separator}generated-sources${File.separator}i18n${File.separator}java8${File.separator}cucumber${File.separator}api${File.separator}java8${File.separator}${className}.java") + file.parentFile.mkdirs() + file.write(template.toString(), "UTF-8") + } } ]]> diff --git a/java8/src/main/code_generator/I18n.java8.txt b/java8/src/main/code_generator/I18n.java8.txt index 8885a04a2c..b67377b9db 100644 --- a/java8/src/main/code_generator/I18n.java8.txt +++ b/java8/src/main/code_generator/I18n.java8.txt @@ -5,25 +5,25 @@ import cucumber.runtime.java8.LambdaGlueBase; import cucumber.runtime.java.JavaBackend; public interface ${className} extends LambdaGlueBase { -<% i18n.codeKeywords.each { kw -> %> - default void ${java.text.Normalizer.normalize(kw, java.text.Normalizer.Form.NFC)}(final String regexp, final StepdefBody.A0 body) { +<% i18n.stepKeywords.findAll { !it.contains('*') && !it.matches("^\\d.*") }.sort().unique().each { kw -> %> + default void ${java.text.Normalizer.normalize(kw.replaceAll("[\\s',!]", ""), java.text.Normalizer.Form.NFC)}(final String regexp, final StepdefBody.A0 body) { JavaBackend.INSTANCE.get().addStepDefinition(regexp, 0, body, ConstantPoolTypeIntrospector.INSTANCE); } - default void ${java.text.Normalizer.normalize(kw, java.text.Normalizer.Form.NFC)}(final String regexp, final long timeoutMillis, final StepdefBody.A0 body) { + default void ${java.text.Normalizer.normalize(kw.replaceAll("[\\s',!]", ""), java.text.Normalizer.Form.NFC)}(final String regexp, final long timeoutMillis, final StepdefBody.A0 body) { JavaBackend.INSTANCE.get().addStepDefinition(regexp, timeoutMillis, body, ConstantPoolTypeIntrospector.INSTANCE); } <% (1..9).each { arity -> def ts = (1..arity).collect { n -> "T"+n } def genericSignature = ts.join(",") %> - default <${genericSignature}> void ${java.text.Normalizer.normalize(kw, java.text.Normalizer.Form.NFC)}(final String regexp, final StepdefBody.A${arity}<${genericSignature}> body) { + default <${genericSignature}> void ${java.text.Normalizer.normalize(kw.replaceAll("[\\s',!]", ""), java.text.Normalizer.Form.NFC)}(final String regexp, final StepdefBody.A${arity}<${genericSignature}> body) { JavaBackend.INSTANCE.get().addStepDefinition(regexp, 0, body, ConstantPoolTypeIntrospector.INSTANCE); } - default <${genericSignature}> void ${java.text.Normalizer.normalize(kw, java.text.Normalizer.Form.NFC)}(final String regexp, final long timeoutMillis, final StepdefBody.A${arity}<${genericSignature}> body) { + default <${genericSignature}> void ${java.text.Normalizer.normalize(kw.replaceAll("[\\s',!]", ""), java.text.Normalizer.Form.NFC)}(final String regexp, final long timeoutMillis, final StepdefBody.A${arity}<${genericSignature}> body) { JavaBackend.INSTANCE.get().addStepDefinition(regexp, timeoutMillis, body, ConstantPoolTypeIntrospector.INSTANCE); } <% } %> <% } %> -} \ No newline at end of file +}