The goal is to make type system extensible without breaking plugin API
* SwitchPageReader calls ValueSwitch#whenXxx methods where Xxx is name
of a type. If a plugin does not know type Xxx, whenElse method is
called. Plugins must implement whenElse and whenNull methods at least.
* SwitchPageBuilder calls ColumnSwitch#whenXxx methods where Xxx is name
of a type. If a plugin does not implement those methods, calling those
methods cause a exception. But as long as the methods are not called,
plugin loading itself succeeds and plugin runs without exception.
All checks have passed
2 successful checks
— The Travis CI build passed