feat: add Immutable Object design pattern (#3448)#3485
feat: add Immutable Object design pattern (#3448)#3485prashantpiyush1111 wants to merge 4 commits into
Conversation
PR SummaryIntroduces the Immutable Object design pattern with a new Changes
autogenerated by presubmit.ai |
There was a problem hiding this comment.
🚨 Pull request needs attention.
Review Summary
Files Processed (3)
- immutable/README.md (1 hunk)
- immutable/pom.xml (1 hunk)
- immutable/src/main/java/ImmutableObject.java (1 hunk)
Actionable Comments (1)
-
immutable/src/main/java/ImmutableObject.java [7-7]
possible bug: "Package path mismatch"
Skipped Comments (2)
-
immutable/src/main/java/ImmutableObject.java [13-20]
best_practice: "Null safety in constructor"
-
immutable/README.md [1-19]
readability: "Documentation accuracy"
| * Immutable Object pattern. | ||
| * Once created, the object state cannot be changed. | ||
| */ | ||
| public final class ImmutableObject { |
There was a problem hiding this comment.
The file declares a package path that does not align with typical Maven source layout. Maven/Java projects expect directory structure immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java for package com.iluwatar.immutable. Move the file to the proper path or adjust the package declaration to reflect the directory structure.
There was a problem hiding this comment.
Fixed in commit 7cdf02b.
File moved to correct path:
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 7cdf02b: fix: move ImmutableObject to correct package path
Files Processed (1)
- immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java (1 hunk)
Actionable Comments (0)
Skipped Comments (2)
-
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java [1-34]
best practice: "Defensive nullability for value object"
-
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java [1-34]
enhancement: "Add value-based equality"
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 1c41504: test: add ImmutableObjectTest for coverage
Files Processed (1)
- immutable/src/test/java/com/iluwatar/immutable/ImmutableObjectTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (2)
-
immutable/src/test/java/com/iluwatar/immutable/ImmutableObjectTest.java [27-35]
best practice: "Immutability test is weak"
-
immutable/src/test/java/com/iluwatar/immutable/ImmutableObjectTest.java [19-24]
readability: "Fragile toString assertion"
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 26287aa: refactor: add equals, hashCode, null safety and tests
Files Processed (2)
- immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java (1 hunk)
- immutable/src/test/java/com/iluwatar/immutable/ImmutableObjectTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (2)
-
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java [14-21]
best_practice: "Invariant: age validity"
-
immutable/src/test/java/com/iluwatar/immutable/ImmutableObjectTest.java [27-34]
readability: "Test immutability assertion is weak"
prashantpiyush1111
left a comment
There was a problem hiding this comment.
Fixed in commit 7cdf02b.
File moved to correct path:
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java
| * Immutable Object pattern. | ||
| * Once created, the object state cannot be changed. | ||
| */ | ||
| public final class ImmutableObject { |
There was a problem hiding this comment.
Fixed in commit 7cdf02b.
File moved to correct path:
immutable/src/main/java/com/iluwatar/immutable/ImmutableObject.java
|



What does this PR do?
Fixes #3448
Added Immutable Object design pattern with: