Create configurable and reusable CIF precondition checker
Currently, each application has its own precondition checker, e.g.,
CifToSupremicaPreChecker, etc. There is a lot of duplication between them. It may be nice to have a single, configurable and reusable precondition checker, in the
Obviously, different applications/transformations have different preconditions. Therefore, each precondition check should be configurable. We could have an
enum with all possible preconditions, and then applications just make a selection from the enum literals and pass that the precondition checker, along with the specification to be checked.
The benefits are:
- Reduced effort to make new precondition checkers.
- Consistent precondition violation messages for all applications.
- Less code duplication and maintenance.