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

Assignees

Type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions