Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINERACT-2081: introduce builder pattern to Note entity instantiation. #4071

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

Zeyad2003
Copy link
Contributor

Description

  • Removed all redundant static instantiation methods and constructors from Note.java.
  • Used Builder pattern to make it easy to instantiate the Note object.
  • Changed all instantiation places to use the new implementation.

Describe the changes made and why they were made.

Ignore if these details are present on the associated Apache Fineract JIRA ticket.

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per https://github.com/apache/fineract/#pull-requests

  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

  • Create/update unit or integration tests for verifying the changes made.

  • Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes

  • Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

public Map<String, Object> update(final JsonCommand command, Note noteForUpdate) {
final Map<String, Object> actualChanges = new LinkedHashMap<>(7);
final String newNote = command.stringValueOfParameterNamed("note");
if (!noteForUpdate.getNote().equals(newNote)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you sure the equals() will catch any content changes inside a Note? We might need a unit test for this logic as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the same old logic, just moved from the entity to the service layer for better separation of concerns.

The equals() method will work as will correctly identify changes in the note content, as it compares the entire string.

@Zeyad2003 Zeyad2003 force-pushed the FINERACT-2081/enhance_note_entity branch from 33c7324 to 6960c09 Compare October 1, 2024 15:07
- Removed all redundant static instantiation methods and constructors from `Note.java`.
- Used Builder pattern to make it easy to instantiate the Note object.
- Changed all instantiation places to use the new implementation.
@Zeyad2003 Zeyad2003 force-pushed the FINERACT-2081/enhance_note_entity branch from 6960c09 to acf898e Compare October 1, 2024 16:00
@Zeyad2003
Copy link
Contributor Author

@kjozsa

Are there any required updates?

@kjozsa
Copy link
Contributor

kjozsa commented Oct 6, 2024

@Zeyad2003 I'm fine, but I recall @vidakovic also had concerns with the nature of the changes. Let's get him review your work as well before we proceed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants