@Override public FilterJob getFilterJob() { if (_filterJobBuilder.isConfigured()) { return _filterJobBuilder.toFilterJob(); } else { // Create an incomplete job. This representation is typically used // for comparison, not execution. final ComponentConfiguration beanConfiguration = new ImmutableComponentConfiguration(_filterJobBuilder.getConfiguredProperties()); return new ImmutableFilterJob(_filterJobBuilder.getName(), _filterJobBuilder.getDescriptor(), beanConfiguration, _filterJobBuilder.getComponentRequirement(), _filterJobBuilder.getMetadataProperties(), _filterJobBuilder.getOutputDataStreamJobs()); } }
public void setRequirement(final FilterComponentBuilder<?, ?> filterComponentBuilder, final Enum<?> category) { if (filterComponentBuilder == this) { throw new IllegalArgumentException("Requirement source and sink cannot be the same"); } final EnumSet<?> categories = filterComponentBuilder.getDescriptor().getOutcomeCategories(); if (!categories.contains(category)) { throw new IllegalArgumentException("No such category found in available outcomes: " + category); } setRequirement(filterComponentBuilder.getFilterOutcome(category)); }
public DisplayOptionsForFilterOutcomeActionListener(final PopupButton popupButton, final FilterComponentBuilder<?, ?> filterJobBuilder, final String categoryName) { super(filterJobBuilder.getAnalysisJobBuilder()); _filterJobBuilder = filterJobBuilder; _categoryName = categoryName; _popupButton = popupButton; }
@Override public String toString() { return "FilterComponentBuilder[filter=" + getDescriptor().getDisplayName() + ",inputColumns=" + getInputColumns() + "]"; }
@Override public void actionPerformed(final ActionEvent e) { final FilterOutcome filterOutcome = _filterJobBuilder .getFilterOutcome(_filterJobBuilder.getDescriptor().getOutcomeCategoryByName(_categoryName)); final ComponentRequirement requirement = new SimpleComponentRequirement(filterOutcome); final AnalysisJobBuilder analysisJobBuilder = _filterJobBuilder.getAnalysisJobBuilder(); final Enum<?> category = _filterJobBuilder.getDescriptor().getOutcomeCategoryByName(_categoryName); final FilterOutcome outcome = _filterJobBuilder.getFilterOutcome(category); analysisJobBuilder.setDefaultRequirement(outcome); });
final JMenu filterMenuItem = new JMenu(LabelUtils.getLabel(fjb)); if (!fjb.isConfigured()) { filterMenuItem.setIcon(unconfiguredFilterIcon); filterMenuItem.setEnabled(false); } else { final FilterDescriptor<?, ?> fjbDescriptor = fjb.getDescriptor(); final Set<String> categoryNames = fjbDescriptor.getOutcomeCategoryNames(); for (final String category : categoryNames) { try { final Enum<?> outcomeCategory = fjbDescriptor.getOutcomeCategoryByName(category); final FilterOutcome filterOutcome = fjb.getFilterOutcome(outcomeCategory); if (currentFilterOutcomes.contains(filterOutcome)) { filterMenuItem.setIcon(selectedRequirementIcon); final Enum<?> outcome = fjb.getDescriptor().getOutcomeCategoryByName(category); final FilterOutcome filterOutcome = fjb.getFilterOutcome(outcome); final ComponentRequirement newRequirement = new SimpleComponentRequirement(filterOutcome); _componentBuilder.setComponentRequirement(newRequirement);
@Override public RendererPrecedence getPrecedence(final FilterComponentBuilder<CompareFilter, CompareFilter.Category> fjb) { if (fjb.getDescriptor().getComponentClass() == CompareFilter.class) { return RendererPrecedence.HIGH; } return RendererPrecedence.NOT_CAPABLE; }
final FilterComponentBuilder<MaxRowsFilter, MaxRowsFilter.Category> filter = jobBuilder.addFilter(MaxRowsFilter.class); filter.setName(filterName); filter.getComponentInstance().setMaxRows(maxRows); filter.getComponentInstance().setApplyOrdering(false); filter.getComponentInstance() .setOrderColumn(jobBuilder.getSourceColumnsOfTable(table).get(0)); return filter; componentBuilder.setComponentRequirement( new CompoundComponentRequirement(existingRequirement, maxRowFilter.getFilterOutcome(MaxRowsFilter.Category.VALID))); maxRowFilter.getFilterOutcome(MaxRowsFilter.Category.VALID)));
/** * @deprecated use {@link #getFilterOutcome(Object)} instead */ @Deprecated public FilterOutcome getOutcome(final Object category) { return getFilterOutcome(category); }
public List<ComponentBuilder> getAvailableUnfilteredBeans(final FilterComponentBuilder<?, ?> filterJobBuilder) { final List<ComponentBuilder> result = new ArrayList<>(); if (filterJobBuilder.isConfigured()) { final Table requiredTable = getOriginatingTable(filterJobBuilder); if (fjb.getComponentRequirement() == null) { final Table foundTable = getOriginatingTable(fjb); if (requiredTable == null || requiredTable.equals(foundTable)) {
if (!fjb.isConfigured(throwException)) { return false;
/** * 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(); } }
@Override public void addNotify() { super.addNotify(); _filterComponentBuilder.addChangeListener(this); }
public <F extends Filter<C>, C extends Enum<C>> FilterComponentBuilder<F, C> addFilter( final FilterDescriptor<F, C> descriptor, final Map<ConfiguredPropertyDescriptor, Object> configuredProperties, final ComponentRequirement requirement, final Map<String, String> metadataProperties) { final FilterComponentBuilder<F, C> filter = new FilterComponentBuilder<>(this, descriptor); initializeComponentBuilder(filter, configuredProperties, requirement, metadataProperties); return addFilter(filter); }
@Override public RendererPrecedence getPrecedence(final FilterComponentBuilder<EqualsFilter, EqualsFilter.Category> fjb) { if (fjb.getDescriptor().getComponentClass() == EqualsFilter.class) { return RendererPrecedence.HIGH; } return RendererPrecedence.NOT_CAPABLE; }
/** * @deprecated use {@link #getFilterOutcome(Enum)} instead */ @Deprecated public FilterOutcome getOutcome(final C category) { return getFilterOutcome(category); }
public FilterJob toFilterJob(final boolean validate, final AnalysisJobImmutabilizer immutabilizer) { if (validate && !isConfigured(true)) { throw new IllegalStateException("Filter job is not correctly configured"); } final ComponentRequirement componentRequirement = immutabilizer.load(getComponentRequirement()); final OutputDataStreamJob[] outputDataStreamJobs = immutabilizer.load(getOutputDataStreamJobs(), validate); if (_cachedJob == null) { _cachedJob = new ImmutableFilterJob(getName(), getDescriptor(), new ImmutableComponentConfiguration(getConfiguredProperties()), componentRequirement, getMetadataProperties(), outputDataStreamJobs); } else { final ImmutableFilterJob newFilterJob = new ImmutableFilterJob(getName(), getDescriptor(), new ImmutableComponentConfiguration(getConfiguredProperties()), componentRequirement, getMetadataProperties(), outputDataStreamJobs); if (!newFilterJob.equals(_cachedJob)) { _cachedJob = newFilterJob; } } return _cachedJob; }
for (final OutcomeType outcomeType : outcomeTypes) { final String categoryName = outcomeType.getCategory(); final Enum<?> category = filterBuilder.getDescriptor().getOutcomeCategoryByName(categoryName); if (category == null) { throw new ComponentConfigurationException( "No such outcome category name: " + categoryName + " (in " + filterBuilder .getDescriptor().getDisplayName() + ")"); throw new ComponentConfigurationException("Outcome id '" + id + "' is not unique"); outcomeMapping.put(id, filterBuilder.getFilterOutcome(category));
public FilterOutcome getFilterOutcome(Object category) { if (category instanceof String) { final EnumSet<?> categories = getDescriptor().getOutcomeCategories(); for (final Enum<?> c : categories) { if (c.name().equals(category)) { category = c; break; } } } final FilterOutcome outcome = _outcomes.get(category); if (outcome == null) { throw new IllegalArgumentException(category + " is not a valid category for " + this); } return outcome; }
/** * 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)); }