/** * Creates a FilterProjectTransposeRule. * * <p>If {@code filterFactory} is null, creates the same kind of filter as * matched in the rule. Similarly {@code projectFactory}.</p> */ public FilterProjectTransposeRule( Class<? extends Filter> filterClass, Class<? extends Project> projectClass, boolean copyFilter, boolean copyProject, RelBuilderFactory relBuilderFactory) { this( operand(filterClass, operand(projectClass, any())), copyFilter, copyProject, relBuilderFactory); }
/** * Creates a FilterProjectTransposeRule. * * <p>If {@code copyFilter} is true, creates the same kind of Filter as * matched in the rule, otherwise it creates a Filter using the RelBuilder * obtained by the {@code relBuilderFactory}. * Similarly for {@code copyProject}. * * <p>Defining predicates for the Filter (using {@code filterPredicate}) * and/or the Project (using {@code projectPredicate} allows making the rule * more restrictive. */ public <F extends Filter, P extends Project> FilterProjectTransposeRule( Class<F> filterClass, Predicate<? super F> filterPredicate, Class<P> projectClass, Predicate<? super P> projectPredicate, boolean copyFilter, boolean copyProject, RelBuilderFactory relBuilderFactory) { this( operandJ(filterClass, null, filterPredicate, operandJ(projectClass, null, projectPredicate, any())), copyFilter, copyProject, relBuilderFactory); }