public AbstractRowProcessingPublisher(final RowProcessingPublishers publishers, final RowProcessingStream stream) { if (publishers == null) { throw new IllegalArgumentException("RowProcessingPublishers cannot be null"); } if (stream == null) { throw new IllegalArgumentException("RowProcessingStream cannot be null"); } _publishers = publishers; _stream = stream; _sourceColumnFinder = new SourceColumnFinder(); _sourceColumnFinder.addSources(stream.getAnalysisJob()); _consumers = new ArrayList<>(); _success = new AtomicBoolean(true); }
/** * Finds the available input columns (source or transformed) that match the * given data type specification. * * @param dataType * the data type to look for * @return a list of matching input columns */ public List<InputColumn<?>> getAvailableInputColumns(final Class<?> dataType) { final SourceColumnFinder finder = new SourceColumnFinder(); finder.addSources(this); return finder.findInputColumns(dataType); }
public TransformerComponentBuilder<?> getOriginatingTransformer(final InputColumn<?> outputColumn) { final SourceColumnFinder finder = new SourceColumnFinder(); finder.addSources(this); final InputColumnSourceJob source = finder.findInputColumnSource(outputColumn); if (source instanceof TransformerComponentBuilder) { return (TransformerComponentBuilder<?>) source; } return null; }
public Table getOriginatingTable(final InputColumn<?> inputColumn) { final SourceColumnFinder finder = new SourceColumnFinder(); finder.addSources(this); return finder.findOriginatingTable(inputColumn); }
@Override public Table getRowProcessingTable(final ComponentJob componentJob) { final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(_job); final Table[] tables = _publishers.getTables(sourceColumnFinder, componentJob); if (tables == null || tables.length == 0) { return null; } // this should always work for component, since they only pertain to a // single table return tables[0]; } }
private void registerJob(final AnalysisJob job) { final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(job); for (final ComponentJob componentJob : getAllComponents(job)) { registerRowProcessingPublishers(sourceColumnFinder, job, componentJob); } }
private void registerJob(final AnalysisJob job, final RowProcessingStream dataStream, final RowProcessingConsumer parentConsumer) { final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(job); for (final ComponentJob componentJob : getAllComponents(job)) { registerRowProcessingPublishers(sourceColumnFinder, job, dataStream, componentJob, parentConsumer); } }
.filter(o -> o instanceof AnalyzerComponentBuilder).collect(Collectors.toSet()); final SourceColumnFinder scf = new SourceColumnFinder(); scf.addSources(jobBuilderCopy);
final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(ajb);
/** * Gets all available {@link InputColumn}s of a particular type to map to a * particular {@link ComponentBuilder} * * @param componentBuilder * @param dataType * @return */ public List<InputColumn<?>> getAvailableInputColumns(final ComponentBuilder componentBuilder, final Class<?> dataType) { List<InputColumn<?>> result = getAvailableInputColumns(dataType); final SourceColumnFinder finder = new SourceColumnFinder(); finder.addSources(this); result = CollectionUtils.filter(result, inputColumn -> { if (inputColumn.isPhysicalColumn()) { return true; } final InputColumnSourceJob origin = finder.findInputColumnSource(inputColumn); if (origin == null) { return true; } if (origin == componentBuilder) { // exclude columns from the component itself return false; } final Set<Object> sourceComponents = finder.findAllSourceJobs(origin); return !sourceComponents.contains(componentBuilder); }); return result; }
/** * Prevents that any row processing components have input from different * tables. * * @param job */ private void validateSingleTableInput(final AnalysisJob job) { final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(job); validateSingleTableInput(sourceColumnFinder, job.getTransformerJobs()); validateSingleTableInput(sourceColumnFinder, job.getFilterJobs()); validateSingleTableInput(sourceColumnFinder, job.getAnalyzerJobs()); }
final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(this); final Set<Object> excludedSet = sourceColumnFinder.findAllSourceJobs(defaultRequirement);
private void buildGraphInternal(final DirectedGraph<Object, JobGraphLink> graph, final AnalysisJobBuilder analysisJobBuilder, final List<Table> sourceTables, final JobGraphElementFactory linkFactory) { // note: currently SourceColumnFinder cannot cross links from // OutputDataStreams to the main/parent AnalysisJobBuilder, so we create // a new SourceColumnFinder for each AnalysisJobBuilder instead of // reusing the instance. final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(analysisJobBuilder); for (final Table table : sourceTables) { addNodes(graph, sourceColumnFinder, linkFactory, table, -1); } final Collection<ComponentBuilder> componentBuilders = analysisJobBuilder.getComponentBuilders(); for (final ComponentBuilder componentBuilder : componentBuilders) { addNodes(graph, sourceColumnFinder, linkFactory, componentBuilder, -1); } removeUnnecesaryEdges(graph, sourceColumnFinder); }
public static void limitJobRows(final AnalysisJobBuilder jobBuilder, final Collection<? extends ComponentBuilder> componentBuilders, final int previewRows) { final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(jobBuilder); final List<Table> sourceTables = jobBuilder.getSourceTables();
final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(ajb);
final SourceColumnFinder sourceColumnFinder = new SourceColumnFinder(); sourceColumnFinder.addSources(job);