/** * Sets a default requirement for all newly added and existing row * processing component, unless they have another requirement. * * @param defaultRequirement */ public void setDefaultRequirement(final FilterOutcome defaultRequirement) { setDefaultRequirement(new SimpleComponentRequirement(defaultRequirement)); }
/** * Sets a default requirement for all newly added and existing row * processing component, unless they have another requirement. * * @param filterJobBuilder * @param category */ public void setDefaultRequirement(final FilterComponentBuilder<?, ?> filterJobBuilder, final Enum<?> category) { setDefaultRequirement(filterJobBuilder.getFilterOutcome(category)); }
public AnalysisJobBuilder removeFilter(final FilterComponentBuilder<?, ?> filterJobBuilder) { final boolean removed = _filterComponentBuilders.remove(filterJobBuilder); if (removed) { final ComponentRequirement previousRequirement = filterJobBuilder.getComponentRequirement(); // clean up components who depend on this filter final Collection<FilterOutcome> outcomes = filterJobBuilder.getFilterOutcomes(); for (final FilterOutcome outcome : outcomes) { if (_defaultRequirement != null && _defaultRequirement.getProcessingDependencies().contains(outcome)) { setDefaultRequirement((ComponentRequirement) null); } for (final ComponentBuilder cb : getComponentBuilders()) { final ComponentRequirement requirement = cb.getComponentRequirement(); if (requirement != null && requirement.getProcessingDependencies().contains(outcome)) { cb.setComponentRequirement(previousRequirement); } } } filterJobBuilder.onRemoved(); // removal last, so listeners gets triggered onComponentRemoved(); } return this; }
final Enum<?> category = _filterJobBuilder.getDescriptor().getOutcomeCategoryByName(_categoryName); final FilterOutcome outcome = _filterJobBuilder.getFilterOutcome(category); analysisJobBuilder.setDefaultRequirement(outcome); });
/** * Creates a slave job by copying the original job and adding a * {@link MaxRowsFilter} as a default requirement. * * @param job * @param firstRow * @param maxRows * @return */ private AnalysisJob buildSlaveJob(final AnalysisJob job, final int slaveJobIndex, final int firstRow, final int maxRows) { logger.info("Building slave job {} with firstRow={} and maxRow={}", slaveJobIndex + 1, firstRow, maxRows); try (AnalysisJobBuilder jobBuilder = new AnalysisJobBuilder(_configuration, job)) { final FilterComponentBuilder<MaxRowsFilter, Category> maxRowsFilter = jobBuilder.addFilter(MaxRowsFilter.class); maxRowsFilter.getComponentInstance().setFirstRow(firstRow); maxRowsFilter.getComponentInstance().setMaxRows(maxRows); final boolean naturalRecordOrderConsistent = jobBuilder.getDatastore().getPerformanceCharacteristics().isNaturalRecordOrderConsistent(); if (!naturalRecordOrderConsistent) { final InputColumn<?> orderColumn = findOrderByColumn(jobBuilder); maxRowsFilter.getComponentInstance().setOrderColumn(orderColumn); } jobBuilder.setDefaultRequirement(maxRowsFilter, MaxRowsFilter.Category.VALID); // in assertion/test mode do an early validation assert jobBuilder.isConfigured(true); return jobBuilder.toAnalysisJob(); } }