#269 Improve CIF/BDD and synthesis settings classes
- Best to review per commit. I did it in small steps. I did change a few things in later commits, so probably best to check also the ones after it before making comments.
- Changes:
- Naming consistency improved.
- More logical order of the settings.
- All defaults in the defaults class, where relevant.
- Moved default of
SupervisorNameOption
into the option itself, rather than in the static method. This is backward incompatible for end users, as giving an empty value for the option no longer defaults to the default value. But that very likely should not affect end users, as they likely only set a different name, or don't provide the option at all. The change helps in the uniformity of handling the various settings. - No more constructors with many arguments for the settings classes. Instead, use getters and setters now. Also added prevention of modification after settings are set.
- Some notes:
- Quite a bit of code in the settings classes now. But, it is all pretty simple and similar. And it is localized in those classes.
- The creation of settings in the synthesis application is much more readable now.
- The creation of settings in the tests is much simpler now, as only some settings need to be set that are relevant to the test, and setting them is more straightforward with the mutable settings classes.
Addresses #269