io.cucumber.java.DefaultDataTableEntryTransformer Maven / Gradle / Ivy
package io.cucumber.java;
import org.apiguardian.api.API;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Register default data table entry transformer.
*
* Valid method signatures are:
*
* - {@code Map
, Type -> Object}
* - {@code Object, Type -> Object}
* - {@code Map
, Type, TableCellByTypeTransformer -> Object}
* - {@code Object, Type, TableCellByTypeTransformer -> Object}
*
*
* @see io.cucumber.datatable.TableEntryByTypeTransformer
* @see io.cucumber.datatable.DataTableType
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@API(status = API.Status.STABLE)
public @interface DefaultDataTableEntryTransformer {
/**
* Converts a data tables header headers to property names.
*
* E.g. {@code Xml Http request} becomes {@code xmlHttpRequest}.
*
* @return true if conversion should be be applied, true by default.
*/
boolean headersToProperties() default true;
/**
* Replace these strings in the Datatable with empty strings.
*
* A data table can only represent absent and non-empty strings. By
* replacing a known value (for example [empty]) a data table can also
* represent empty strings.
*
* It is not recommended to use multiple replacements in the same table.
*
* @return strings to be replaced with empty strings.
*/
String[] replaceWithEmptyString() default {};
}