public TransformerConsumer(final Transformer transformer, final TransformerJob transformerJob, final InputColumn<?>[] inputColumns, final RowProcessingPublisher publisher) { super(publisher, transformerJob, transformerJob); _transformer = transformer; _transformerJob = transformerJob; _inputColumns = inputColumns; _concurrent = determineConcurrent(); _outputRowCollectorProperties = _transformerJob.getDescriptor().getProvidedPropertiesByType(OutputRowCollector.class); }
@Override public InputColumn<?>[] getOutputColumns() { return _transformerJob.getOutput(); }
for (TransformerJob transformerJob : transformerJobs) { final Map<String, Object> jobComponent = new HashMap<>(); jobComponent.put("name", transformerJob.getName()); jobComponent.put("type", "transformer"); jobComponent.put("descriptor", transformerJob.getDescriptor().getDisplayName()); jobComponent.put("metadataProperties", transformerJob.getMetadataProperties()); descriptors.add(jobComponent);
final TransformerJob job = entry.getKey(); final TransformerType elementType = entry.getValue(); final ComponentConfiguration configuration = job.getConfiguration(); job.getDescriptor().getConfiguredPropertiesForInput(); elementType.getInput().addAll(createInputConfiguration(configuration, configuredProperties, columnMappings, stringConverter)); configuredProperties = job.getDescriptor().getConfiguredProperties(); elementType.setProperties(createPropertyConfiguration(configuration, configuredProperties, stringConverter, job.getMetadataProperties())); elementType.setMetadataProperties(createMetadataProperties(job.getMetadataProperties()));
for (final TransformerJob transformerJob : transformerJobs) { final TransformerType transformerType = new TransformerType(); transformerType.setName(transformerJob.getName()); setDescriptor(transformerType, transformerJob.getDescriptor());
final ComponentRequirement requirement = job.getComponentRequirement(); if (requirement != null) { final String id = getId(requirement, outcomeMappings);
@Override public List<AnalyzerJob> getAnalyzerJobs() { // create a single analyzer for picking up records final AnalyzerDescriptor<?> descriptor = Descriptors.ofAnalyzer(PreviewTransformedDataAnalyzer.class); final Map<ConfiguredPropertyDescriptor, Object> properties = new HashMap<ConfiguredPropertyDescriptor, Object>(); final List<InputColumn<?>> columns = new ArrayList<InputColumn<?>>(); final Collection<TransformerJob> transformerJobs = getTransformerJobs(); for (TransformerJob transformerJob : transformerJobs) { InputColumn<?>[] outputColumns = transformerJob.getOutput(); for (InputColumn<?> outputColumn : outputColumns) { columns.add(outputColumn); } } properties.put(descriptor.getConfiguredPropertiesForInput().iterator().next(), columns.toArray(new InputColumn[columns.size()])); final ComponentConfiguration componentConfiguration = new ImmutableComponentConfiguration(properties); final AnalyzerJob analyzerJob = new ImmutableAnalyzerJob("Record gatherer", descriptor, componentConfiguration, null, null, null); return Arrays.asList(analyzerJob); }
private boolean determineConcurrent() { final Concurrent concurrent = _transformerJob.getDescriptor().getAnnotation(Concurrent.class); if (concurrent == null) { // transformers are by default concurrent return true; } return concurrent.value(); }
private void addTransformedColumns(final BiMap<InputColumn<?>, String> columnMappings, final Map<TransformerJob, TransformerType> transformerMappings) { // register all transformed columns for (final Entry<TransformerJob, TransformerType> entry : transformerMappings.entrySet()) { final TransformerJob transformerJob = entry.getKey(); final TransformerType transformerType = entry.getValue(); final InputColumn<?>[] columns = transformerJob.getOutput(); for (final InputColumn<?> inputColumn : columns) { final String id = getColumnId(inputColumn, columnMappings); final OutputType outputType = new OutputType(); outputType.setId(id); outputType.setName(inputColumn.getName()); if (inputColumn instanceof MutableInputColumn) { final boolean hidden = ((MutableInputColumn<?>) inputColumn).isHidden(); if (hidden) { outputType.setHidden(hidden); } } transformerType.getOutput().add(outputType); } } }