@Description("Records with unresolved foreign key values") @Distributed(reducer = ReferentialIntegrityAnalyzerReducer.class) public class ReferentialIntegrityAnalyzerResult extends AnnotatedRowsResult { private static final long serialVersionUID = 1L; public ReferentialIntegrityAnalyzerResult(final RowAnnotation annotation, final RowAnnotationFactory annotationFactory, final InputColumn<?>[] highlightedColumns) { super(annotation, annotationFactory, highlightedColumns); } }
@Override public final String getDescription() { final Description description = getAnnotation(Description.class); if (description == null) { return null; } return description.value(); }
@Description("Marked rows") @Distributed(reducer = MarkRowsAnalyzerResultReducer.class) public class MarkRowsAnalyzerResult extends AnnotatedRowsResult { private static final long serialVersionUID = 1L; public MarkRowsAnalyzerResult(RowAnnotation annotation, RowAnnotationFactory annotationFactory, InputColumn<?>[] highlightedColumns) { super(annotation, annotationFactory, highlightedColumns); } @Metric(order = 1, value = "Row count") public int getTotalRowCount() { return getAnnotatedRowCount(); } }
@Override public String getDescription() { final Description desc = getAnnotation(Description.class); if (desc == null) { return null; } return desc.value(); }
@Description("Marked rows") @Distributed(reducer = MarkRowsAnalyzerResultReducer.class) public class MarkRowsAnalyzerResult extends AnnotatedRowsResult { private static final long serialVersionUID = 1L; public MarkRowsAnalyzerResult(RowAnnotation annotation, RowAnnotationFactory annotationFactory, InputColumn<?>[] highlightedColumns) { super(annotation, annotationFactory, highlightedColumns); } @Metric(order = 1, value = "Row count") public int getTotalRowCount() { return getAnnotatedRowCount(); } }
@Override public String getDisplayName() { // this is the 'descriptor' name, e.g. will be used for CSS styling final Description desc = ReflectionUtils.getAnnotation(_componentClass, Description.class); if (desc == null || StringUtils.isNullOrEmpty(desc.value())) { return _componentClass.getSimpleName(); } return desc.value(); }
@Description("Incomplete records") @Distributed(reducer = CompletenessAnalyzerResultReducer.class) public class CompletenessAnalyzerResult extends AnnotatedRowsResult implements AnalyzerResult {
@Override public final String getDescription() { final Description desc = getAnnotation(Description.class); if (desc == null) { return null; } return desc.value(); }
@Named("Compose & write JSON document") @Description("Creates a string representation of a data structure as a JSON (JavaScript Object Notation) document") @Categorized(DataStructuresCategory.class) public class ComposeJsonTransformer implements Transformer { @Description("Column containing data structures to format") InputColumn<?> data;
@Override public String getDisplayName() { // this is the 'descriptor' name, e.g. will be used for CSS styling final Description desc = ReflectionUtils.getAnnotation(_componentClass, Description.class); if (desc == null || StringUtils.isNullOrEmpty(desc.value())) { return _componentClass.getSimpleName(); } return desc.value(); }
@Named("Single word") @Description("Filters single word values from multiple word values.") @Categorized(FilterCategory.class) @Deprecated
public String getDescription() { final Description annotation = ReflectionUtils.getAnnotation(_outcome, Description.class); if (annotation == null) { return ""; } final String description = annotation.value(); return DocumentationUtils.createHtmlParagraphs(description); } }
@Named("Generate ID") @Description("Generates a unique and sequential record ID") @Categorized(NumbersCategory.class) public class GenerateIdTransformer implements Transformer { @Description( "A type of ID which will be generated for each record in scope. Current options: sequential numbers or row number.") IdType idType = IdType.SEQUENCE; @Configured @Description("A column which represent the scope for which the ID will be generated. " + "If eg. a source column is selected, an ID will be generated for each source record. " + "If a transformed column is selected, an ID will be generated for each record generated that has this column.") InputColumn<?> columnInScope; @Configured @Description("The row number offset. This is often used to insert into a database with existing sequential IDs. " + "Since the transformer increments before inserting, an offset of e.g. 100 would make the first newly " + "inserted ID 101.")
final String descriptionText; if (description != null) { descriptionText = description.value(); } else { descriptionText = "Values";
@Named("String value range") @Description("A filter that filters out values outside a specified value range") @Categorized(FilterCategory.class) public class StringValueRangeFilter implements Filter<RangeFilterCategory> { @Description("The lowest valid string value, eg. AAA") String lowestValue; @Description("The highest valid string value, eg. xxx") String highestValue;
final String descriptionText; if (description != null) { descriptionText = description.value(); } else { descriptionText = "Records";
@Named("XML decoder") @Description("Decodes XML content into plain text") @Categorized(EncodingCategory.class) public class XmlDecoderTransformer implements Transformer {
final String descriptionText; if (description != null) { descriptionText = description.value(); } else { descriptionText = "Records";
@Named("Expression language (EL) transformer") @Description("Generates a column based on an EL expression") @Categorized({ ScriptingCategory.class }) public class ELTransformer implements Transformer {
@Named("Remove substring") @Description( "Subtracts one or more substrings from a base text, i.e. [\"Hello world\",\"World\"] would yield \"Hello\".") @Categorized(TextCategory.class) @Description("Column containing the text to subtract from") InputColumn<String> baseColumn; @Description("Columns containing the substrings to remove from the base text") InputColumn<?>[] substringColumns; @Description("If set, only whole words (surrounded by whitespace or punctuation) will be removed.\n" + " This prevents removing partial words.") boolean wholeWordsOnly = false; @Description("Should substring matching be case-sensitive or not?") boolean caseSensitive = true;