A TimeIndexable is a {@link TimeAddressable} where the range size can bestored in a 32 bit integer, and with a value for all time units in the range. The values are either actual values or
missing values. The restriction on the range size makes it possible to store values in structures indexed by 32 bit integers.
A TimeIndexable places restrictions on the length of a single run of missing values. Any of the {@link TimeAddressable#put put} methods can throw an exceptionwhen a certain threshold is exceeded. The threshold can be queried with {@link TimeIndexable#getMaxGap()}. The maximum allowed gap can be modified for future time series with {@link TimeSeriesFactory#setMaxGap(int)}.
The definitions of {@link #copy} and {@link TimeIndexable#makeEmptyCopy()} areoverridden to return a {@link TimeIndexable} instead of a {@link TimeAddressable}.
@author Jean-Paul Vetterli
@param < T> the value type