@Override public String getSimpleName() { return _outcome.getCategory() + ""; }
public boolean isQueryOptimizable(final FilterOutcome filterOutcome) { if (_filter instanceof QueryOptimizedFilter) { @SuppressWarnings("rawtypes") final QueryOptimizedFilter queryOptimizedFilter = (QueryOptimizedFilter) _filter; @SuppressWarnings("unchecked") final boolean optimizable = queryOptimizedFilter.isOptimizable(filterOutcome.getCategory()); return optimizable; } return false; }
private FilterOutcome findFilterOutcome(final FilterOutcome originalFilterOutcome, final Map<ComponentJob, ComponentBuilder> componentBuilders) { final HasFilterOutcomes source = originalFilterOutcome.getSource(); final ComponentBuilder builder = componentBuilders.get(source); if (builder == null) { throw new IllegalStateException( "Could not find builder corresponding to " + source + " in builder map: " + componentBuilders); } final Enum<?> category = originalFilterOutcome.getCategory(); final FilterComponentBuilder<?, ?> filterJobBuilder = (FilterComponentBuilder<?, ?>) builder; return filterJobBuilder.getFilterOutcome(category); }
@Override public String toString() { final String filterLabel = LabelUtils.getLabel(_outcome.getFilterJob()); return filterLabel + "=" + _outcome.getCategory(); }
@Override public Query getOptimizedQuery() { Query query = _baseQuery; final Set<Entry<FilterConsumer, FilterOutcome>> entries = _optimizedFilters.entrySet(); if (!entries.isEmpty()) { // create a copy/clone of the original query query = query.clone(); for (final Entry<FilterConsumer, FilterOutcome> entry : entries) { final FilterConsumer consumer = entry.getKey(); final FilterOutcome outcome = entry.getValue(); final Filter<?> filter = consumer.getComponent(); @SuppressWarnings("rawtypes") final QueryOptimizedFilter queryOptimizedFilter = (QueryOptimizedFilter) filter; @SuppressWarnings("unchecked") final Query newQuery = queryOptimizedFilter.optimizeQuery(query, outcome.getCategory()); query = newQuery; } } return query; }
outcomeType.setCategory(outcome.getCategory().name()); outcomeType.setId(id); filterType.getOutcome().add(outcomeType);
/** * Gets the label (if any) to show towards the user in the {@link JobGraph}. * * @return */ public String getLinkLabel() { final FilterOutcome filterOutcome = getFilterOutcome(); if (filterOutcome != null) { return filterOutcome.getCategory() + ""; } final ComponentRequirement req = getRequirement(); if (req != null) { return req.getSimpleName(); } final OutputDataStream outputDataStream = getOutputDataStream(); if (outputDataStream != null) { return outputDataStream.getName(); } return null; } }