public static AndDimFilter and(DimFilter... filters) { return and(Arrays.asList(filters)); }
public static OrDimFilter or(DimFilter... filters) { return or(Arrays.asList(filters)); }
public static List<DimFilter> optimize(List<DimFilter> filters) { return filterNulls(Lists.transform(filters, DimFilter::optimize)); }
@Test public void testAnd() { Assert.assertEquals( 1, Filters .toFilter(DimFilters.or(new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null))) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); Assert.assertEquals( 1, Filters .toFilter( DimFilters.and( new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null), new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null) ) ) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); }
@Test public void testNot() { Assert.assertEquals( 1, Filters .toFilter(DimFilters.or(new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null))) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); Assert.assertEquals( 1, Filters .toFilter(DimFilters.not(new ExtractionDimFilter("foo", "DOES NOT EXIST", DIM_EXTRACTION_FN, null))) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); } }
@Override public DimFilter optimize() { List<DimFilter> elements = DimFilters.optimize(fields); return elements.size() == 1 ? elements.get(0) : new OrDimFilter(elements); }
.addDimension("sally") .addAggregator(new LongSumAggregatorFactory("cnt", "cnt")) .setDimFilter(DimFilters.dimEquals("sally", (String) null)) .build(), new IncrementalIndexStorageAdapter(index)
@Override public DimFilter optimize() { List<DimFilter> elements = DimFilters.optimize(fields); return elements.size() == 1 ? elements.get(0) : new AndDimFilter(elements); }
@Test public void testOr() { Assert.assertEquals( 1, Filters .toFilter(DimFilters.or(new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null))) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); Assert.assertEquals( 1, Filters .toFilter( DimFilters.or( new ExtractionDimFilter("foo", "extractDimVal", DIM_EXTRACTION_FN, null), new ExtractionDimFilter("foo", "DOES NOT EXIST", DIM_EXTRACTION_FN, null) ) ) .getBitmapIndex(BITMAP_INDEX_SELECTOR) .size() ); }
public static AndDimFilter and(DimFilter... filters) { return and(Arrays.asList(filters)); }
@JsonCreator public OrDimFilter( @JsonProperty("fields") List<DimFilter> fields ) { fields = DimFilters.filterNulls(fields); Preconditions.checkArgument(fields.size() > 0, "OR operator requires at least one field"); this.fields = fields; }
@Override public DimFilter optimize() { List<DimFilter> elements = DimFilters.optimize(fields); return elements.size() == 1 ? elements.get(0) : new AndDimFilter(elements); }
public static OrDimFilter or(DimFilter... filters) { return or(Arrays.asList(filters)); }
@JsonCreator public AndDimFilter( @JsonProperty("fields") List<DimFilter> fields ) { fields = DimFilters.filterNulls(fields); Preconditions.checkArgument(fields.size() > 0, "AND operator requires at least one field"); this.fields = fields; }
@Override public DimFilter optimize() { List<DimFilter> elements = DimFilters.optimize(fields); return elements.size() == 1 ? elements.get(0) : new OrDimFilter(elements); }
public static List<DimFilter> optimize(List<DimFilter> filters) { return filterNulls( Lists.transform( filters, new Function<DimFilter, DimFilter>() { @Override public DimFilter apply(DimFilter input) { return input.optimize(); } } ) ); }
@JsonCreator public AndDimFilter( @JsonProperty("fields") List<DimFilter> fields ) { fields = DimFilters.filterNulls(fields); Preconditions.checkArgument(fields.size() > 0, "AND operator requires at least one field"); this.fields = fields; }
@JsonCreator public OrDimFilter( @JsonProperty("fields") List<DimFilter> fields ) { fields = DimFilters.filterNulls(fields); Preconditions.checkArgument(fields.size() > 0, "OR operator requires at least one field"); this.fields = fields; }