class LogicalProgramTransforms {

    public OperatorNode<StatementOperator> apply(OperatorNode<StatementOperator> program, ViewRegistry scope) {
        List<StatementOperatorTransform> transforms = Lists.newArrayList(
                new ReplaceSubqueryFilters(),
                new SequenceTransformer(scope)
        );
        for (StatementOperatorTransform transform : transforms) {
            program = transform.visitStatement(program);
        }
        return program;
    }

}