@huanyu-li So fat, the printing of plans was implemented via static methods. This PR changes that. It introduces a framework for employing different plan printers and moves the existing functionality of plan printing as an implementation of this framework. In particular, this PR introduces two Java interfaces (LogicalPlanPrinter and PhysicalPlanPrinter) and corresponding classes (TextBasedLogicalPlanPrinterImpl and `TextBasedPhysicalPlanPrinterImpl) that, for the moment, do the same as was done in the static methods. Now, you can change the behavior of these classes to make the text-based printout look nicer, and you can create other classes that implement the two new interfaces in other ways (e.g., to "print" an RDF-based representation of the plans).
@huanyu-li So fat, the printing of plans was implemented via static methods. This PR changes that. It introduces a framework for employing different plan printers and moves the existing functionality of plan printing as an implementation of this framework. In particular, this PR introduces two Java interfaces (
LogicalPlanPrinter
andPhysicalPlanPrinter
) and corresponding classes (TextBasedLogicalPlanPrinterImpl
and `TextBasedPhysicalPlanPrinterImpl) that, for the moment, do the same as was done in the static methods. Now, you can change the behavior of these classes to make the text-based printout look nicer, and you can create other classes that implement the two new interfaces in other ways (e.g., to "print" an RDF-based representation of the plans)./cc @keski