Binary Filters provides the import / export filters for the old StarOffice file formats.
Goals for binfilter are,
- it should be complete respectively should rely on stable APIs only,
- it shouldn't be required to ever be changed.
Both goals have not been reached yet.
Somebody asked how to deal with the binfilter vs. other office code dependency in case of an incompatible change. He was facing the problem how to deal with an incompatible change done to basctl wrt. to the binfilter module.
Note: The binfilter module is currently not complete, it has C++ dependencies to other office code.
We came up with the following recipe: For every request of an additional module for / change of binfilter the following steps are to be tried in the following order:
- Check if the dependency could not be removed / avoided completely. - For the above change this means, to verify that basctl is indeed needed for loading / storing documents.
- Copy the code which is needed only. - For the above change this means, that the serializers (import / export) may just be copied out of basctl to binfilter (respectively they may be just reimplemented if this is easier :-) .
- Copy the whole module. - If the target module is reasonable small, the whole module may be copied to binfilter. For the above change this would mean to copy basctl to binfilter.
- Adapt binfilter to the incompatible changes done in the dependent module. - For the above change this would mean, to adapt binfilter to the changes done in basctl.
- Do not change the dependent module incompatible. - For the above change this would mean, not to change basctl incompatible.