Collection<Bitemporal> toEnd = getItemsThatNeedToBeEnded(newValue);
Collection<Bitemporal> toAdd = new LinkedList<Bitemporal>();
DateTime validityStartOfNewValue = newValue.getValidityInterval().getStart();
for (Bitemporal validOnStartOfNewValue : get(validityStartOfNewValue, TimeUtils.now())) {
if (validityStartOfNewValue.compareTo(validOnStartOfNewValue.getValidityInterval().getStart()) > 0) {
Interval validityInterval = TimeUtils.interval(
validOnStartOfNewValue.getValidityInterval().getStart(),
validityStartOfNewValue);
toAdd.add(validOnStartOfNewValue.copyWith(validityInterval));
}