@Override final public SampledValue getValue(long time) { if (!isInsideTimeSeriesRange(time)) { return null; } final int idx = m_values.getIndexBelow(time); final SampledValue left = (idx != SampledValueSortedList.NO_SUCH_INDEX) ? m_values.get(idx) : null; final SampledValue right = (idx < m_values.size() - 1) ? m_values.get(idx + 1) : null; return m_interpolationFunction.interpolate(left, right, time, m_type); }