@Categories(categories = { "transform"}) @Description("[DEPRECATED] Use the 'split-to-columns' or 'parse-as-fixed-length' directives instead.") @Deprecated
public DirectiveInfo(Scope scope, Class<?> directive) throws IllegalAccessException, InstantiationException { this.scope = scope; this.directive = directive; Object object = directive.newInstance(); this.definition = ((Directive) object).define(); if (definition != null) { this.usage = definition.toString(); } else { this.usage = "No definition available for directive '" + directive + "'"; } this.name = directive.getAnnotation(Name.class).value(); Description desc = directive.getAnnotation(Description.class); if (desc == null) { this.description = "No description specified for directive class '" + directive.getSimpleName() + "'"; } else { this.description = desc.value(); } Deprecated annotation = directive.getAnnotation(Deprecated.class); if (annotation == null) { deprecated = false; } else { deprecated = true; } Categories category = directive.getAnnotation(Categories.class); if (category == null) { categories = new String[] { "default" }; } else { categories = category.categories(); } }
@Categories(categories = { "transform"}) @Description("Use 'split-to-columns' or 'split-to-rows'.") @Deprecated
@Categories(categories = { "writer", "json"}) @Description("Writes all record columns as JSON map.") public class WriteAsJsonMap implements Directive {
@Categories(categories = { "transform", "uuid"}) @Description("Populates a column with a universally unique identifier (UUID) of the record.") public class GenerateUUID implements Directive {
@Categories(categories = { "transform"}) @Description("Changes the column values to title case.") public class TitleCase implements Directive {
@Categories(categories = { "transform"}) @Description("Changes the column values to uppercase.") public class Upper implements Directive {
@Categories(categories = { "transform"}) @Description("Changes the column values to lowercase.") public class Lower implements Directive {
@Categories(categories = { "column"}) @Description("Sets the header of columns, in the order they are specified.") public class SetHeader implements Directive {
@Categories(categories = { "column"}) @Description("Keeps the specified columns and drops all others.") public class Keep implements Directive {
@Categories(categories = { "column"}) @Description("Swaps the column names of two columns.") public class Swap implements Directive {
@Categories(categories = { "column"}) @Description("Drop one or more columns.") public class Drop implements Directive {
@Categories(categories = { "transform"}) @Description("Trimming whitespace from both sides of a string.") public class Trim implements Directive {
@Categories(categories = { "column"}) @Description("Changes the case of column names to either lowercase or uppercase.") public class ChangeColCaseNames implements Directive {
@Categories(categories = { "transform"}) @Description("Trimming whitespace from right side of a string.") public class RightTrim implements Directive {
@Categories(categories = { "transform"}) @Description("Trimming whitespace from left side of a string.") public class LeftTrim implements Directive {
@Categories(categories = { "column"}) @Description("Sanatizes column names: trims, lowercases, and replaces all but [A-Z][a-z][0-9]_." + "with an underscore '_'.")
@Categories(categories = { "row", "data-quality"}) @Description("Filters row that have empty or null columns.") public class RecordMissingOrNullFilter implements Directive {
@Categories(categories = { "transform"}) @Description("URL encode a column value.") public class UrlEncode implements Directive {
@Categories(categories = { "column"}) @Description("Modifies column names in bulk using a sed-format expression.") public class ColumnsReplace implements Directive {