final Filter filter = (Filter) this.originalFilter.accept(filterSimplifier, null);
filter.accept(filterSplitter, null);
Filter supported = filterSplitter.getFilterPre();
Filter unsupported = filterSplitter.getFilterPost();
Filter demultipliedFilter = (Filter) supported.accept(new LiteralDemultiplyingFilterVisitor(), null);
this.supportedFilter = (Filter) demultipliedFilter.accept(filterSimplifier, null);
this.unsupportedFilter = (Filter) unsupported.accept(filterSimplifier, null);
StringBuilder whereClause = new StringBuilder();
return (StringBuilder) this.supportedFilter.accept(predicateBuilder, whereClause);