code: protected Object addComponent(ComponentJob componentJob) {
          final AbstractBeanJobBuilder<?, ?, ?> builder;
          if (componentJob instanceof FilterJob) {
              builder = addFilter((FilterBeanDescriptor<?, ?>) componentJob.getDescriptor());
          } else if (componentJob instanceof TransformerJob) {
              builder = addTransformer((TransformerBeanDescriptor<?>) componentJob.getDescriptor());
          } else if (componentJob instanceof AnalyzerJob) {
              builder = addAnalyzer((AnalyzerBeanDescriptor<?>) componentJob.getDescriptor());
          } else {
              throw new UnsupportedOperationException("Unknown component job type: " + componentJob);
          }
  
          builder.setName(componentJob.getName());
  
          if (componentJob instanceof ConfigurableBeanJob<?>) {
              ConfigurableBeanJob<?> configurableBeanJob = (ConfigurableBeanJob<?>) componentJob;
              builder.setConfiguredProperties(configurableBeanJob.getConfiguration());
          }
  
          if (componentJob instanceof InputColumnSourceJob) {
              InputColumn<?>[] output = ((InputColumnSourceJob) componentJob).getOutput();
  
              TransformerJobBuilder<?> transformerJobBuilder = (TransformerJobBuilder<?>) builder;
              List<MutableInputColumn<?>> outputColumns = transformerJobBuilder.getOutputColumns();
  
              assert output.length == outputColumns.size();
  
              for (int i = 0; i < output.length; i++) {
                  MutableInputColumn<?> mutableOutputColumn = outputColumns.get(i);
                  mutableOutputColumn.setName(output[i].getName());
              }
          }
  
          return builder;
      }
docs: Creates a filter job builder like the incoming filter job. 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 filterJob
  
  @return the builder object for the specific component