@Override public void populateDisplayData(DisplayData.Builder builder) { builder.add(DisplayData.item("from", getFrom()).withLabel("Generate sequence from")); builder.addIfNotDefault( DisplayData.item("to", getTo()).withLabel("Generate sequence to (exclusive)"), -1L); builder.addIfNotNull( DisplayData.item( "timestampFn", getTimestampFn() == null ? null : getTimestampFn().getClass()) .withLabel("Timestamp Function")); builder.addIfNotNull( DisplayData.item("maxReadTime", getMaxReadTime()).withLabel("Maximum Read Time")); if (getElementsPerPeriod() > 0) { builder.add( DisplayData.item("elementsPerPeriod", getElementsPerPeriod()) .withLabel("Elements per period")); builder.add(DisplayData.item("period", getPeriod()).withLabel("Period")); } } }
boolean isRangeUnbounded = getTo() < 0; boolean usesUnboundedFeatures = getTimestampFn() != null || getElementsPerPeriod() > 0 || getMaxReadTime() != null; if (!isRangeUnbounded && !usesUnboundedFeatures) { source = source.withTimestampFn(getTimestampFn()); if (getElementsPerPeriod() > 0) { source = source.withRate(getElementsPerPeriod(), getPeriod());