();
- transposed.add(row);
- }
- row.add(gherkinRow.getCells().get(j));
- }
- }
- return new DataTable(this.gherkinRows, transposed, this.tableConverter);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof DataTable)) return false;
-
- DataTable dataTable = (DataTable) o;
-
- if (!raw.equals(dataTable.raw)) return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return raw.hashCode();
- }
-}
diff --git a/core/src/main/java/cucumber/api/Delimiter.java b/core/src/main/java/cucumber/api/Delimiter.java
deleted file mode 100644
index e78bab9018..0000000000
--- a/core/src/main/java/cucumber/api/Delimiter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package cucumber.api;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- *
- * This annotation can be specified on step definition method parameters to give Cucumber a hint
- * about how to transform a String to a list of objects. For example, if you have the following Gherkin step:
- *
- *
- * Given the users adam, bob, john
- *
- *
- * Then the following Java Step Definition would convert that into a List:
- *
- *
- * @Given("^the users ([a-z](?:, [a-z]+))$")
- * public void the_users(@Delimiter(", ") List<String> users) {
- * this.users = users;
- * }
- *
- *
- * This annotation also works with regular expression patterns. Step definition method parameters of type
- * {@link java.util.List} without the {@link Delimiter} annotation will default to the pattern {@code ",\\s?"}.
- *
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
-public @interface Delimiter {
- String value();
-}
diff --git a/core/src/main/java/cucumber/api/Format.java b/core/src/main/java/cucumber/api/Format.java
deleted file mode 100644
index dabbfc646a..0000000000
--- a/core/src/main/java/cucumber/api/Format.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package cucumber.api;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- *
- * This annotation can be specified on step definition method parameters to give Cucumber a hint
- * about how to transform a String into an object such as a Date or a Calendar. For example, if you have the following Gherkin step with
- * a ISO 8601 date:
- *
- *
- * Given the date is 2012-03-01T06:54:12
- *
- *
- * Then the following Java Step Definition would convert that into a Date:
- *
- *
- * @Given("^the date is (\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})$")
- * public void the_date_is(@Format("yyyy-MM-dd'T'HH:mm:ss") Date date) {
- * this.date = date;
- * }
- *
- *
- * Or a Calendar:
- *
- *
- * @Given("^the date is (\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})$")
- * public void the_date_is(@Format("yyyy-MM-dd'T'HH:mm:ss") Calendar cal) {
- * this.cal = cal;
- * }
- *
- *
- * This annotation also works for data tables that are transformed to a list of beans with Date or Calendar fields.
- *
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
-public @interface Format {
- String value();
-}
diff --git a/core/src/main/java/cucumber/api/Pending.java b/core/src/main/java/cucumber/api/Pending.java
deleted file mode 100644
index c8460c5298..0000000000
--- a/core/src/main/java/cucumber/api/Pending.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cucumber.api;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Any exception class annotated with this annotation will be treated as a "pending" exception.
- * That is - if the exception is thrown from a step definition or hook, the scenario's status will
- * be pending instead of failed.
- *
- * @see PendingException
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface Pending {
-}
diff --git a/core/src/main/java/cucumber/api/PendingException.java b/core/src/main/java/cucumber/api/PendingException.java
deleted file mode 100644
index be30dd1c65..0000000000
--- a/core/src/main/java/cucumber/api/PendingException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package cucumber.api;
-
-// We're deliberately not extending CucumberException (which is used to signal fatal errors)
-@Pending
-public class PendingException extends RuntimeException {
- public PendingException() {
- this("TODO: implement me");
- }
-
- public PendingException(String message) {
- super(message);
- }
-}
diff --git a/core/src/main/java/cucumber/api/Plugin.java b/core/src/main/java/cucumber/api/Plugin.java
deleted file mode 100644
index ca4424ac02..0000000000
--- a/core/src/main/java/cucumber/api/Plugin.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package cucumber.api;
-
-public interface Plugin {
-}
diff --git a/core/src/main/java/cucumber/api/Scenario.java b/core/src/main/java/cucumber/api/Scenario.java
deleted file mode 100644
index fa90f726db..0000000000
--- a/core/src/main/java/cucumber/api/Scenario.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package cucumber.api;
-
-import java.util.Collection;
-
-/**
- * Before or After Hooks that declare a parameter of this type will receive an instance of this class.
- * It allows writing text and embedding media into reports, as well as inspecting results (in an After block).
- */
-public interface Scenario {
- /**
- * @return source_tag_names. Needed for compatibility with Capybara.
- */
- Collection getSourceTagNames();
-
- /**
- * @return the most severe status of the Scenario's Steps. One of "passed", "undefined", "pending", "skipped", "failed"
- */
- String getStatus();
-
- /**
- * @return true if and only if {@link #getStatus()} returns "failed"
- */
- boolean isFailed();
-
- /**
- * Embeds data into the report(s). Some reporters (such as the progress one) don't embed data, but others do (html and json).
- * Example:
- *
- *
- * {@code
- * // Embed a screenshot. See your UI automation tool's docs for
- * // details about how to take a screenshot.
- * scenario.embed(pngBytes, "image/png");
- * }
- *
- *
- * @param data what to embed, for example an image.
- * @param mimeType what is the data?
- */
- void embed(byte[] data, String mimeType);
-
- /**
- * Outputs some text into the report.
- *
- * @param text what to put in the report.
- */
- void write(String text);
-
- /**
- *
- * @return the name of the Scenario
- */
- String getName();
-
- /**
- * @return the id of the Scenario.
- */
- String getId();
-}
diff --git a/core/src/main/java/cucumber/api/SnippetType.java b/core/src/main/java/cucumber/api/SnippetType.java
deleted file mode 100644
index 3809e0ab28..0000000000
--- a/core/src/main/java/cucumber/api/SnippetType.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package cucumber.api;
-
-import cucumber.runtime.CucumberException;
-import cucumber.runtime.snippets.CamelCaseConcatenator;
-import cucumber.runtime.snippets.Concatenator;
-import cucumber.runtime.snippets.FunctionNameGenerator;
-import cucumber.runtime.snippets.UnderscoreConcatenator;
-
-public enum SnippetType {
- UNDERSCORE("underscore", new UnderscoreConcatenator()),
- CAMELCASE("camelcase", new CamelCaseConcatenator());
-
- private final String name;
- private final Concatenator concatenator;
-
- SnippetType(String name, Concatenator concatenator) {
- this.name = name;
- this.concatenator = concatenator;
- }
-
- public static SnippetType fromString(String name) {
- for (SnippetType snippetType : SnippetType.values()) {
- if (name.equalsIgnoreCase(snippetType.name)) {
- return snippetType;
- }
- }
- throw new CucumberException(String.format("Unrecognized SnippetType %s", name));
- }
-
- public FunctionNameGenerator getFunctionNameGenerator() {
- return new FunctionNameGenerator(concatenator);
- }
-}
diff --git a/core/src/main/java/cucumber/api/StepDefinitionReporter.java b/core/src/main/java/cucumber/api/StepDefinitionReporter.java
deleted file mode 100644
index 6c39bf4072..0000000000
--- a/core/src/main/java/cucumber/api/StepDefinitionReporter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package cucumber.api;
-
-import cucumber.runtime.StepDefinition;
-
-public interface StepDefinitionReporter {
- /**
- * Called when a step definition is defined
- *
- * @param stepDefinition the step definition
- */
- void stepDefinition(StepDefinition stepDefinition);
-}
diff --git a/core/src/main/java/cucumber/api/Transform.java b/core/src/main/java/cucumber/api/Transform.java
deleted file mode 100644
index 94ea372975..0000000000
--- a/core/src/main/java/cucumber/api/Transform.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package cucumber.api;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * An annotation to specify how a Step Definition argument is transformed.
- *
- * @see Transformer
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
-@Documented
-public @interface Transform {
- Class extends Transformer>> value();
-}
diff --git a/core/src/main/java/cucumber/api/Transformer.java b/core/src/main/java/cucumber/api/Transformer.java
deleted file mode 100644
index 3ffbe4a841..0000000000
--- a/core/src/main/java/cucumber/api/Transformer.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package cucumber.api;
-
-import cucumber.deps.com.thoughtworks.xstream.converters.SingleValueConverter;
-import cucumber.runtime.ParameterInfo;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.Locale;
-
-/**
- *
- * Allows transformation of a step definition argument to a custom type, giving you full control
- * over how that type is instantiated.
- *
- *
- * Consider the following Gherkin step:
- *
- * Given today's date is "10/03/1985"
- *
- * As an example, let's assume we want Cucumber to transform the substring "10/03/1985" into an instance of
- * org.joda.time.LocalDate
class:
- *
- *
- * @Given("today's date is \"(.*)\"")
- * public void todays_date_is(LocalDate d) {
- * }
- *
- *
- * If the parameter's class has a constructor with a single String
or Object
argument, then
- * Cucumber will instantiate it without any further ado. However, in this case that might not give you what you
- * want. Depending on your Locale, the date may be Oct 3 or March 10!
- *
- *
- *
- * This is when you can use a custom transformer. You'll also have to do that if your parameter class doesn't
- * have a constructor with a single String
or Object
argument. For the JODA Time
- * example:
- *
- *
- *
- * @Given("today's date is \"(.*)\"")
- * public void todays_date_is(@Transform(JodaTimeConverter.class) LocalDate d) {
- * }
- *
- *
- * And then a JodaTimeConverter
class:
- *
- * {@code
- * public static class JodaTimeConverter extends Transformer {
- * private static DateTimeFormatter FORMATTER = DateTimeFormat.forStyle("S-");
- *
- * @Override
- * public LocalDate transform(String value) {
- * return FORMATTER.withLocale(getLocale()).parseLocalDate(value);
- * }
- * }
- * }
- *
- * An alternative to annotating parameters with {@link Transform} is to annotate your class with
- * {@link cucumber.deps.com.thoughtworks.xstream.annotations.XStreamConverter}:
- *
- *
- * @XStreamConverter(MyConverter.class)
- * public class MyClass {
- * }
- *
- *
- * This will also enable a {@link DataTable} to be transformed to
- * a List<MyClass;>
- *
- *
- * @param the type to be instantiated
- * @see Transform
- */
-public abstract class Transformer implements SingleValueConverter {
- private final Type type;
- private Locale locale;
-
- public Transformer() {
- ParameterizedType ptype = (ParameterizedType) getClass().getGenericSuperclass();
- this.type = ptype.getActualTypeArguments()[0];
- }
-
- @Override
- public String toString(Object o) {
- return o.toString();
- }
-
- @Override
- public final Object fromString(String s) {
- return transform(s);
- }
-
- @Override
- public boolean canConvert(Class type) {
- return type.equals(this.type);
- }
-
- public abstract T transform(String value);
-
- public void setParameterInfoAndLocale(ParameterInfo parameterInfo, Locale locale) {
- this.locale = locale;
- }
-
- /**
- * @return the current locale
- */
- protected Locale getLocale() {
- return locale;
- }
-}
diff --git a/core/src/main/java/cucumber/api/Transpose.java b/core/src/main/java/cucumber/api/Transpose.java
deleted file mode 100644
index b748ea4830..0000000000
--- a/core/src/main/java/cucumber/api/Transpose.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cucumber.api;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- *
- * This annotation can be specified on step definition method parameters to give Cucumber a hint
- * to transpose a DataTable into an object or list of objects.
- *
- * For example, if you have the following Gherkin step with a table
- *
- *
- * Given the user is
- * | firstname | Roberto |
- * | lastname | Lo Giacco |
- * | nationality | Italian |
- *
- *
- * Then the following Java Step Definition would convert that into an User object:
- *
- *
- * @Given("^the user is$")
- * public void the_user_is(@Transpose User user) {
- * this.user = user;
- * }
- *
- *
- *
- * This annotation also works for data tables that are transformed to a list of beans.
- *
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.PARAMETER)
-public @interface Transpose {
- boolean value() default true;
-}
diff --git a/core/src/main/java/cucumber/api/cli/Main.java b/core/src/main/java/cucumber/api/cli/Main.java
deleted file mode 100644
index 1801e84b85..0000000000
--- a/core/src/main/java/cucumber/api/cli/Main.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package cucumber.api.cli;
-
-import cucumber.runtime.ClassFinder;
-import cucumber.runtime.Runtime;
-import cucumber.runtime.RuntimeOptions;
-import cucumber.runtime.io.MultiLoader;
-import cucumber.runtime.io.ResourceLoader;
-import cucumber.runtime.io.ResourceLoaderClassFinder;
-
-import java.io.IOException;
-import java.util.ArrayList;
-
-import static java.util.Arrays.asList;
-
-public class Main {
-
- public static void main(String[] argv) throws Throwable {
- byte exitstatus = run(argv, Thread.currentThread().getContextClassLoader());
- System.exit(exitstatus);
- }
-
- /**
- * Launches the Cucumber-JVM command line.
- *
- * @param argv runtime options. See details in the {@code cucumber.api.cli.Usage.txt} resource.
- * @param classLoader classloader used to load the runtime
- * @return 0 if execution was successful, 1 if it was not (test failures)
- * @throws IOException if resources couldn't be loaded during the run.
- */
- public static byte run(String[] argv, ClassLoader classLoader) throws IOException {
- RuntimeOptions runtimeOptions = new RuntimeOptions(new ArrayList(asList(argv)));
-
- ResourceLoader resourceLoader = new MultiLoader(classLoader);
- ClassFinder classFinder = new ResourceLoaderClassFinder(resourceLoader, classLoader);
- Runtime runtime = new Runtime(resourceLoader, classFinder, classLoader, runtimeOptions);
- runtime.run();
- return runtime.exitStatus();
- }
-}
diff --git a/core/src/main/java/cucumber/runtime/AmbiguousStepDefinitionsException.java b/core/src/main/java/cucumber/runtime/AmbiguousStepDefinitionsException.java
deleted file mode 100644
index 339ba3afe6..0000000000
--- a/core/src/main/java/cucumber/runtime/AmbiguousStepDefinitionsException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cucumber.runtime;
-
-import java.util.List;
-
-public class AmbiguousStepDefinitionsException extends CucumberException {
- private final List matches;
-
- public AmbiguousStepDefinitionsException(List matches) {
- super(createMessage(matches));
- this.matches = matches;
- }
-
- private static String createMessage(List matches) {
- StringBuilder msg = new StringBuilder();
- msg.append(matches.get(0).getStepLocation()).append(" matches more than one step definition:\n");
- for (StepDefinitionMatch match : matches) {
- msg.append(" ").append(match.getPattern()).append(" in ").append(match.getLocation()).append("\n");
- }
- return msg.toString();
- }
-
- public List getMatches() {
- return matches;
- }
-}
diff --git a/core/src/main/java/cucumber/runtime/Backend.java b/core/src/main/java/cucumber/runtime/Backend.java
deleted file mode 100644
index ebfa09040b..0000000000
--- a/core/src/main/java/cucumber/runtime/Backend.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package cucumber.runtime;
-
-import cucumber.runtime.snippets.FunctionNameGenerator;
-import gherkin.formatter.model.Step;
-
-import java.util.List;
-
-public interface Backend {
- /**
- * Invoked once before all features. This is where stepdefs and hooks should be loaded.
- */
- void loadGlue(Glue glue, List gluePaths);
-
- /**
- * invoked once, handing the backend a reference to a step executor
- * in case the backend needs to call steps defined within other steps
- */
- void setUnreportedStepExecutor(UnreportedStepExecutor executor);
-
- /**
- * Invoked before a new scenario starts. Implementations should do any necessary
- * setup of new, isolated state here.
- */
- void buildWorld();
-
- /**
- * Invoked at the end of a scenario, after hooks
- */
- void disposeWorld();
-
- String getSnippet(Step step, FunctionNameGenerator functionNameGenerator);
-}
diff --git a/core/src/main/java/cucumber/runtime/ClassFinder.java b/core/src/main/java/cucumber/runtime/ClassFinder.java
deleted file mode 100644
index d78b9e5fff..0000000000
--- a/core/src/main/java/cucumber/runtime/ClassFinder.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package cucumber.runtime;
-
-import java.util.Collection;
-
-public interface ClassFinder {
- Collection> getDescendants(Class parentType, String packageName);
-}
diff --git a/core/src/main/java/cucumber/runtime/CucumberException.java b/core/src/main/java/cucumber/runtime/CucumberException.java
deleted file mode 100644
index 4ce81aa33a..0000000000
--- a/core/src/main/java/cucumber/runtime/CucumberException.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package cucumber.runtime;
-
-public class CucumberException extends RuntimeException {
- public CucumberException(String message) {
- super(message);
- }
-
- public CucumberException(String message, Throwable e) {
- super(message, e);
- }
-
- public CucumberException(Throwable e) {
- super(e);
- }
-}
diff --git a/core/src/main/java/cucumber/runtime/DuplicateStepDefinitionException.java b/core/src/main/java/cucumber/runtime/DuplicateStepDefinitionException.java
deleted file mode 100644
index f62890b807..0000000000
--- a/core/src/main/java/cucumber/runtime/DuplicateStepDefinitionException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cucumber.runtime;
-
-public class DuplicateStepDefinitionException extends CucumberException {
- public DuplicateStepDefinitionException(StepDefinition a, StepDefinition b) {
- super(createMessage(a, b));
- }
-
- private static String createMessage(StepDefinition a, StepDefinition b) {
- return String.format("Duplicate step definitions in %s and %s", a.getLocation(true), b.getLocation(true));
- }
-}
diff --git a/core/src/main/java/cucumber/runtime/Env.java b/core/src/main/java/cucumber/runtime/Env.java
deleted file mode 100644
index 5eed262a10..0000000000
--- a/core/src/main/java/cucumber/runtime/Env.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package cucumber.runtime;
-
-import java.util.MissingResourceException;
-import java.util.Properties;
-import java.util.ResourceBundle;
-
-/**
- * Looks up values in the following order:
- *
- * - Environment variable
- * - System property
- * - Resource bundle
- *
- */
-public class Env {
- private final String bundleName;
- private final Properties properties;
-
- public Env() {
- this(null, System.getProperties());
- }
-
- public Env(String bundleName) {
- this(bundleName, System.getProperties());
- }
-
- public Env(Properties properties) {
- this(null, properties);
- }
-
- public Env(String bundleName, Properties properties) {
- this.bundleName = bundleName;
- this.properties = properties;
- }
-
- public String get(String key) {
- String result = getFromEnvironment(key);
- if (result == null) {
- result = getFromProperty(key);
- if (result == null && bundleName != null) {
- result = getFromBundle(key);
- }
- }
- return result;
- }
-
- private String getFromEnvironment(String key) {
- String value = System.getenv(asEnvKey(key));
- if (value == null) {
- value = System.getenv(asPropertyKey(key));
- }
- return value;
- }
-
- private String getFromProperty(String key) {
- String value = properties.getProperty(asEnvKey(key));
- if (value == null) {
- value = properties.getProperty(asPropertyKey(key));
- }
- return value;
- }
-
- private String getFromBundle(String key) {
- try {
- String value = ResourceBundle.getBundle(bundleName).getString(asEnvKey(key));
- if (value == null) {
- value = ResourceBundle.getBundle(bundleName).getString(asPropertyKey(key));
- }
- return value;
- } catch (MissingResourceException ignore) {
- }
- return null;
- }
-
- public String get(String key, String defaultValue) {
- String result = get(key);
- return result != null ? result : defaultValue;
- }
-
- private static String asEnvKey(String key) {
- return key.replace('.', '_').toUpperCase();
- }
-
- private static String asPropertyKey(String key) {
- return key.replace('_', '.').toLowerCase();
- }
-}
diff --git a/core/src/main/java/cucumber/runtime/FeatureBuilder.java b/core/src/main/java/cucumber/runtime/FeatureBuilder.java
deleted file mode 100644
index 4e500aeaef..0000000000
--- a/core/src/main/java/cucumber/runtime/FeatureBuilder.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package cucumber.runtime;
-
-import cucumber.runtime.io.Resource;
-import cucumber.runtime.model.CucumberFeature;
-import gherkin.I18n;
-import gherkin.formatter.FilterFormatter;
-import gherkin.formatter.Formatter;
-import gherkin.formatter.model.Background;
-import gherkin.formatter.model.Examples;
-import gherkin.formatter.model.Feature;
-import gherkin.formatter.model.Scenario;
-import gherkin.formatter.model.ScenarioOutline;
-import gherkin.formatter.model.Step;
-import gherkin.lexer.Encoding;
-import gherkin.parser.Parser;
-import gherkin.util.FixJava;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.math.BigInteger;
-import java.nio.charset.Charset;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class FeatureBuilder implements Formatter {
- private static final Charset UTF8 = Charset.forName("UTF-8");
- private final List cucumberFeatures;
- private final char fileSeparatorChar;
- private final MessageDigest md5;
- private final Map pathsByChecksum = new HashMap();
- private CucumberFeature currentCucumberFeature;
- private String featurePath;
-
- public FeatureBuilder(List cucumberFeatures) {
- this(cucumberFeatures, File.separatorChar);
- }
-
- FeatureBuilder(List cucumberFeatures, char fileSeparatorChar) {
- this.cucumberFeatures = cucumberFeatures;
- this.fileSeparatorChar = fileSeparatorChar;
- try {
- this.md5 = MessageDigest.getInstance("MD5");
- } catch (NoSuchAlgorithmException e) {
- throw new CucumberException(e);
- }
- }
-
- @Override
- public void uri(String uri) {
- this.featurePath = uri;
- }
-
- @Override
- public void feature(Feature feature) {
- currentCucumberFeature = new CucumberFeature(feature, featurePath);
- cucumberFeatures.add(currentCucumberFeature);
- }
-
- @Override
- public void background(Background background) {
- currentCucumberFeature.background(background);
- }
-
- @Override
- public void scenario(Scenario scenario) {
- currentCucumberFeature.scenario(scenario);
- }
-
- @Override
- public void scenarioOutline(ScenarioOutline scenarioOutline) {
- currentCucumberFeature.scenarioOutline(scenarioOutline);
- }
-
- @Override
- public void examples(Examples examples) {
- currentCucumberFeature.examples(examples);
- }
-
- @Override
- public void step(Step step) {
- currentCucumberFeature.step(step);
- }
-
- @Override
- public void eof() {
- }
-
- @Override
- public void syntaxError(String state, String event, List legalEvents, String uri, Integer line) {
- }
-
- @Override
- public void done() {
- }
-
- @Override
- public void close() {
- }
-
- @Override
- public void startOfScenarioLifeCycle(Scenario scenario) {
- // NoOp
- }
-
- @Override
- public void endOfScenarioLifeCycle(Scenario scenario) {
- // NoOp
- }
-
- public void parse(Resource resource, List