/** * Copy-constructor from another time series. Note that the TimeSeries * interface provides no means of telling the user what the actual data type * is, so it must be provided explicitly. */ public ArrayTimeSeries(ReadOnlyTimeSeries other, Class<? extends Value> type) { this.m_type = type; final List<SampledValue> values = other.getValues(Long.MIN_VALUE); addValues(values); setInterpolationMode(other.getInterpolationMode()); }
@Override public ArrayTimeSeries read(ReadOnlyTimeSeries schedule, long start, long end) { m_values.clear(); final List<SampledValue> newValues = schedule.getValues(start, end); m_values.addValuesCopies(newValues); setInterpolationMode(schedule.getInterpolationMode()); return this; }
@Override public ArrayTimeSeries read(ReadOnlyTimeSeries schedule) { m_values.clear(); final List<SampledValue> newValues = schedule.getValues(0); m_values.addValuesCopies(newValues); setInterpolationMode(schedule.getInterpolationMode()); return this; }
@Override public ArrayTimeSeries readWithBoundaries(ReadOnlyTimeSeries schedule, long start, long end) { m_values.clear(); setInterpolationMode(schedule.getInterpolationMode()); final List<SampledValue> newValues = schedule.getValues(start, end); List<SampledValue> resultList = new ArrayList<SampledValue>(); if (end < start) return this; if (newValues.isEmpty() || start < newValues.get(0).getTimestamp()) { SampledValue sv = schedule.getValue(start); if (sv != null) resultList.add(new SampledValue(sv)); } resultList.addAll(newValues); if (end > start) { SampledValue sv = schedule.getValue(end); if (sv != null) resultList.add(new SampledValue(sv)); } m_values.addValuesCopies(resultList); return this; }