private void copyOldRangesFromPreviousMap( RangeAndValue latestRangeAndValue, @Output ImmutableRangeMap.Builder<Long, T> builder) { timestampMappings() .stream() .filter(rangeAndValue -> !rangeAndValue.equals(latestRangeAndValue)) .forEach(rangeAndValue -> builder.put(rangeAndValue.longRange(), rangeAndValue.value())); }
@Value.Lazy RangeMap<Long, T> rangeMapView() { ImmutableRangeMap.Builder<Long, T> builder = new ImmutableRangeMap.Builder<>(); timestampMappings() .forEach(rangeAndValue -> builder.put(rangeAndValue.longRange(), rangeAndValue.value())); return builder.build(); }
private void copyOldRangesFromPreviousMap( RangeAndValue latestRangeAndValue, @Output ImmutableRangeMap.Builder<Long, T> builder) { timestampMappings() .stream() .filter(rangeAndValue -> !rangeAndValue.equals(latestRangeAndValue)) .forEach(rangeAndValue -> builder.put(rangeAndValue.longRange(), rangeAndValue.value())); }
private void addNewRanges( long lowerBoundForNewVersion, T newValue, RangeAndValue<T> latestRangeAndValue, @Output ImmutableRangeMap.Builder<Long, T> builder) { builder.put(Range.closedOpen(latestRangeAndValue.longRange().lowerEndpoint(), lowerBoundForNewVersion), latestRangeAndValue.value()); builder.put(Range.atLeast(lowerBoundForNewVersion), newValue); }
@Value.Lazy RangeMap<Long, T> rangeMapView() { ImmutableRangeMap.Builder<Long, T> builder = new ImmutableRangeMap.Builder<>(); timestampMappings() .forEach(rangeAndValue -> builder.put(rangeAndValue.longRange(), rangeAndValue.value())); return builder.build(); }
private static <T> void validateProvidedTimestampBounds(long lowerBoundForNewValue, T newValue, RangeAndValue<T> latestEntry) { if (lowerBoundForNewValue < latestEntry.longRange().lowerEndpoint()) { throw new SafeIllegalArgumentException("Cannot install a new value at an earlier timestamp;" + " attempted to install version {} at {}, but the newest interval is at {}.", SafeArg.of("attemptedNewValue", newValue), SafeArg.of("attemptedLowerBound", lowerBoundForNewValue), SafeArg.of("existingInterval", latestEntry)); } }
private void addNewRanges( long lowerBoundForNewVersion, T newValue, RangeAndValue<T> latestRangeAndValue, @Output ImmutableRangeMap.Builder<Long, T> builder) { builder.put(Range.closedOpen(latestRangeAndValue.longRange().lowerEndpoint(), lowerBoundForNewVersion), latestRangeAndValue.value()); builder.put(Range.atLeast(lowerBoundForNewVersion), newValue); }
private static <T> void validateProvidedTimestampBounds(long lowerBoundForNewValue, T newValue, RangeAndValue<T> latestEntry) { if (lowerBoundForNewValue < latestEntry.longRange().lowerEndpoint()) { throw new SafeIllegalArgumentException("Cannot install a new value at an earlier timestamp;" + " attempted to install version {} at {}, but the newest interval is at {}.", SafeArg.of("attemptedNewValue", newValue), SafeArg.of("attemptedLowerBound", lowerBoundForNewValue), SafeArg.of("existingInterval", latestEntry)); } }