Skip to content

Project: Refactor and unify JabRef OO components #11829

@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

Type

No fields configured for task.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions