AbstractQueryBuilderFactory { public void addFilter(IRuleFilter filter) { this.filters.add(filter); } AbstractQueryBuilderFactory(); abstract AbstractBuilder builder(); void addFilter(IRuleFilter filter); void addFilterBefore(IRuleFilter filter, Class<? extends IRuleFilter> beforeFilter); void addFilterAfter(IRuleFilter filter, Class<? extends IRuleFilter> afterFilter); void addFilterAt(IRuleFilter filter, Class<? extends IRuleFilter> atFilter); void addRuleParser(IRuleParser parser); void addRuleParserBefore(IRuleParser parser, Class<? extends IRuleParser> beforeParser); void addRuleParserAfter(IRuleParser parser, Class<? extends IRuleParser> afterParser); void addRuleParserAt(IRuleParser parser, Class<? extends IRuleParser> atParser); List<IRuleFilter> getFilters(); List<IRuleParser> getRuleParsers(); IGroupParser getGroupParser(); void setGroupParser(IGroupParser groupParser);  }
@Test public void addFilter() throws Exception { AbstractQueryBuilderFactory factory = new SqlQueryBuilderFactory(); factory.addFilter(testFilter); Assert.assertEquals(factory.getFilters().get(factory.getFilters().size() - 1), testFilter); }