Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.7.0
-
None
Description
From Chris's comment https://reviews.apache.org/r/32795/
It would have been better to have a writeJson(ObjectMapper) method added to each of OptionList, PhysicalOperator, and ExecutionControls, and for PhysicalPlanReader just to have a getMapper() that is used to get the argument needed for those. In that form, we don't have to add a new method to PhysicalPlanReader for each thing that we want to add to it. We just get its mapper and write whatever it is to it.
We'd have
final ObjectMapper mapper = reader.getMapper();
options.writeJson(mapper);
executionControls.writeJson(mapper);
So as we add more things to the plan, we don't have to add more methods to it. Each object knows how to write itself, given the mapper. And if we ever need to add them to anything else, that object just needs to expose its mapper in a similar way, rather than having a method per item.