Refactor serialization of SessionItem (less generic, more explicit)
Serialization means writing and reading of BornAgain project files.
The generic approach makes it very difficult to implement backward compatibility. If e.g. a property name was misspelled ("heigt"), this can't be corrected. Therefore a serialization should be implemented where each data element is expicitly stored/loaded and can be corrected/enhanced/removed/added more easily.
Also the current file versioning is quite limited (only good for whole file OK/NOK, it can't be used for compatibility).
After first discussions, we decided to take a closer look at the boost serialization library.
Another discussion outcome was to go for a single project file solution (either completely created by boost or as a (zip?) archive) instead of a multi-file project stored in a folder structure. This seems more convenient for the users and reduces errors when moving or exchanging files.
Note:
Regarding the design of how to serialize, read also the discussion in !573 (merged): !573 (comment 170494)
This has to be done for
-
Material items -
Sample items -
Instrument items -
Job items -
Real data items