Add DurationUtils.zeroIfNull(Duration).

This commit is contained in:
Gary Gregory 2021-02-20 09:11:57 -05:00
parent cda703ccb8
commit 3a35c53c6c
2 changed files with 18 additions and 1 deletions

View File

@ -22,6 +22,7 @@ import java.time.temporal.ChronoUnit;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.Range; import org.apache.commons.lang3.Range;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
@ -108,4 +109,14 @@ public class DurationUtils {
return LONG_TO_INT_RANGE.fit(Long.valueOf(duration.toMillis())).intValue(); return LONG_TO_INT_RANGE.fit(Long.valueOf(duration.toMillis())).intValue();
} }
/**
* Returns the given non-null value or {@link Duration#ZERO} if null.
*
* @param duration The duration to test.
* @return The given duration or {@link Duration#ZERO}.
*/
public static Duration zeroIfNull(final Duration duration) {
return ObjectUtils.defaultIfNull(duration, Duration.ZERO);
}
} }

View File

@ -86,4 +86,10 @@ public class DurationUtilsTest {
assertEquals(Integer.MIN_VALUE, DurationUtils.toMillisInt(Duration.ofNanos(Long.MIN_VALUE))); assertEquals(Integer.MIN_VALUE, DurationUtils.toMillisInt(Duration.ofNanos(Long.MIN_VALUE)));
assertEquals(Integer.MAX_VALUE, DurationUtils.toMillisInt(Duration.ofNanos(Long.MAX_VALUE))); assertEquals(Integer.MAX_VALUE, DurationUtils.toMillisInt(Duration.ofNanos(Long.MAX_VALUE)));
} }
@Test
public void testZeroIfNull() {
assertEquals(Duration.ZERO, DurationUtils.zeroIfNull(null));
assertEquals(Duration.ofDays(1), DurationUtils.zeroIfNull(Duration.ofDays(1)));
}
} }