[
https://issues.apache.org/jira/browse/LANG-1479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Gregory closed LANG-1479.
------------------------------
Fix Version/s: 3.10
Resolution: Fixed
In git master.
> Add Range.fit(T) to fit a value into a range
> --------------------------------------------
>
> Key: LANG-1479
> URL: https://issues.apache.org/jira/browse/LANG-1479
> Project: Commons Lang
> Issue Type: New Feature
> Reporter: Gary Gregory
> Assignee: Gary Gregory
> Priority: Major
> Fix For: 3.10
>
>
> Facilitates code like:
> {code:java}
> int max = ...;
> int result = max < 0 ? 0 : max > 64 ? 64 : max;
> {code}
> to simply be:
> {code:java}
> static final RANGE = Range.between(16, 64);
> int max = ...;
> int result = RANGE.fit(max);
> {code}
> Like this:
> {code:java}
> /**
> * <p>
> * Fits the given element into this range by returning the given element
> or, if out of bounds, the range minimum if
> * below, or the range maximum if above.
> * </p>
> *
> * @param element the element to check for, not null
> * @return the minimum, the element, or the maximum depending on the
> element's location relative to the range
> * @since 3.10
> */
> public T fit(final T element) {
> // Comparable API says throw NPE on null
> Validate.notNull(element, "Element is null");
> if (isAfter(element)) {
> return minimum;
> } else if (isBefore(element)) {
> return maximum;
> } else {
> return element;
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.2#803003)