Skip to content

Project: Refactor and unify JabRef OO components #11829

Open
@subhramit

Description

@subhramit

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions