Case insensitive Constraints via ignoreCase method per Constraint subtype that can support it #1006
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.
Option 2 for case insensitive Constraints:
Add
.ignoreCase()
to specific subtypes ofConstraint
that are capable of case insensitive comparisons when operating onString
values. This includesLike
,NotLike
,EqualTo
,NotEqualTo
,Between
,NotBetween
, and the various GT/LT/GTE/LTE constraints. If a user ever invokesignoreCase()
on a constraint that has a non-String value, it will raise UnsupportedOperationException.Provide an
isCaseSensitive()
method for each of these same subtypes to determine if aConstraint
performs case insensitive comparisons, defaulting it based on whether the value is aString
(true
forString
andfalse
for others). When it starts astrue
, an instance withfalse
can be obtained by invokingignoreCase()
.Example usage:
We should choose between this PR or #1005 (or if someone thinks of another way) for case-insensitive constraints