@Override public Set<Dimension> gatherFilterDimensions(Filter filter, Set<Dimension> dimensions) { if (filter instanceof SelectorFilter) { dimensions.add(((SelectorFilter) filter).getDimension()); } else if (filter instanceof InFilter) { dimensions.add(((InFilter) filter).getDimension()); } else if (filter instanceof MultiClauseFilter) { for (Filter multiclauseFilter : ((MultiClauseFilter) filter).getFields()) { gatherFilterDimensions(multiclauseFilter, dimensions); } } else if (filter instanceof NotFilter) { gatherFilterDimensions(((NotFilter) filter).getField(), dimensions); } return dimensions; } }