feat: implement identifier-based equals/hashCode for PromptReference #514
+103
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ensure PromptReference equality is based solely on identifier and type fields, ignoring other fields like title
Motivation and Context
The PromptReference class lacked proper equals() and hashCode() implementations, which could lead to incorrect behavior when using these objects in collections (HashMap, HashSet, etc.) or when comparing instances. This change ensures that PromptReference equality is based solely on the identifying fields (identifier and type) rather than all object fields, meaning two PromptReference objects with the same identifier and type are considered equal regardless of other descriptive fields like title.
How Has This Been Tested?
PromptReferenceEqualsTest.java
to verify equals() and hashCode() contractBreaking Changes
No breaking changes. This is an additive change that implements standard Java object contracts. Existing code will continue to work as before, but will now benefit from proper object equality semantics.
Types of changes
Checklist