private void configureComponents(final JobType job, final Map<String, String> variables,
final Map<String, String> variableOverrides, final AnalysisJobBuilder analysisJobBuilder,
final Map<String, InputColumn<?>> inputColumns, final SourceColumnMapping sourceColumnMapping) {
final StringConverter stringConverter = createStringConverter(analysisJobBuilder);
final DescriptorProvider descriptorProvider = _configuration.getEnvironment().getDescriptorProvider();
final Map<ComponentType, ComponentBuilder> componentBuilders = new HashMap<>();
final List<ColumnType> columnsTypes = job.getSource().getColumns().getColumn();
final List<ComponentType> allComponentTypes = getAllComponentTypes(job);
for (final ComponentType componentType : allComponentTypes) {
final ComponentBuilder componentBuilder =
createComponentBuilder(analysisJobBuilder, descriptorProvider, componentType);
initializeComponentBuilder(variables, stringConverter, componentBuilders, componentType, componentBuilder,
inputColumns, columnsTypes);
}
wireInputColumns(inputColumns, componentBuilders);
wireRequirements(componentBuilders);
wireOutputDataStreams(variableOverrides, componentBuilders, sourceColumnMapping);
}