Open
Description
Project: Refactor JabRef-OpenOffice components
There is a lot of scope for improvement in code quality in JabRef's OpenOffice/LibreOffice integration components to make it much more maintainable. These include, but are not limited to:
- Unification of error handling mechanism for JabRef-OOdoc interaction: Currently there exists a mix of returning Optional, throwing exceptions, and using
OOResult
/OOVoidResult
. We can standardize the error handling approaches for consistency. - Use of Dependency Injection
- Break down large methods like
guiActionInsertEntry()
- Use more constants instead of magic strings e.g. as used in the error messages
- Use of built-in functional interfaces: for methods that take
Supplier<OOError>
as parameters - will improve code clarity - Use of modern Java features like streams and optional chaining
- Separation of concerns: classes such as
OOBibBase
handle both business logic and UI interactions. We can consider extracting UI-related code into a separate class or layer. - Inner classes like
ComparableMark
can be converted to record classes. - Unification of backend for CSL and JStyles (Optional, and a big project - I am fine with all the CSL logic being separate due to the difference in code philosophy and time required for unification).
I will be working on this, but any sub-issue here is free-to-take, so will be using this issue to track the state/progress.
The list is not yet complete, so will be updated from time to time as I come across more scopes for improvements.