code: private void validateSingleTableInput(final SourceColumnFinder sourceColumnFinder,
              final Collection<? extends ComponentJob> componentJobs) {
          for (final ComponentJob componentJob : componentJobs) {
              if (!componentJob.getDescriptor().isMultiStreamComponent()) {
                  Table originatingTable = null;
                  final InputColumn<?>[] input = componentJob.getInput();
  
                  for (final InputColumn<?> inputColumn : input) {
                      final Table table = sourceColumnFinder.findOriginatingTable(inputColumn);
                      if (table != null) {
                          if (originatingTable == null) {
                              originatingTable = table;
                          } else {
                              if (!originatingTable.equals(table)) {
                                  throw new IllegalArgumentException(
                                          "Input columns in " + componentJob + " originate from different tables");
                              }
                          }
                      }
                  }
              }
  
              final OutputDataStreamJob[] outputDataStreamJobs = componentJob.getOutputDataStreamJobs();
              for (final OutputDataStreamJob outputDataStreamJob : outputDataStreamJobs) {
                  validateSingleTableInput(outputDataStreamJob.getJob());
              }
          }
  
      }
docs: Prevents that any row processing components have input from different
  tables.
  
  @param sourceColumnFinder
  @param componentJobs