public String getComponentKey(final ComponentJob componentJob) { final String key = componentJob.getMetadataProperties().get(METADATA_PROPERTY_COMPONENT_INDEX); if (key == null) { throw new IllegalStateException("No key registered for component: " + componentJob); } final String partitionKey = componentJob.getMetadataProperties() .get(AnalyzerComponentBuilder.METADATA_PROPERTY_BUILDER_PARTITION_INDEX); if (partitionKey != null) { return key + "." + partitionKey; } else { return key; } }
/** * Creates a component builder similar to the incoming {@link ComponentJob}. * Note that input (columns and requirements) will not be mapped since these * depend on the context of the {@link FilterJob} and may not be matched in * the {@link AnalysisJobBuilder}. * * @param componentJob * * @return the builder object for the specific component */ protected ComponentBuilder addComponent(final ComponentJob componentJob) { final ComponentDescriptor<?> descriptor = componentJob.getDescriptor(); final ComponentBuilder builder = addComponent(descriptor); builder.setName(componentJob.getName()); builder.setConfiguredProperties(componentJob.getConfiguration()); builder.setMetadataProperties(componentJob.getMetadataProperties()); if (componentJob instanceof InputColumnSourceJob) { final InputColumn<?>[] output = ((InputColumnSourceJob) componentJob).getOutput(); final TransformerComponentBuilder<?> transformerJobBuilder = (TransformerComponentBuilder<?>) builder; final List<MutableInputColumn<?>> outputColumns = transformerJobBuilder.getOutputColumns(); assert output.length == outputColumns.size(); for (int i = 0; i < output.length; i++) { final MutableInputColumn<?> mutableOutputColumn = outputColumns.get(i); mutableOutputColumn.setName(output[i].getName()); } } return builder; }