I need to create new Range
object, changing only one (lower or upper) bound. Other bound must be unchanged.
What is most convenient way to do that?
I see method com.google.common.collect.Range#range(C lower, BoundType lowerType, C upper, BoundType upperType)
, but when I need to change lower, I must copy upper value from my range - and be careful if upperBound exist at all.
It looks rather ugly (example below). And I need similar code for changing upper bound. Is there easier way to do so?
if (range.hasUpperBound()) {
range = Range.range(value, BoundType.CLOSED, range.upperEndpoint(), timeSpend.upperBoundType());
} else {
range = Range.upTo(value, BoundType.CLOSED);
}