/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.timeseries.precise.instant; import org.threeten.bp.Instant; import com.opengamma.timeseries.DoubleTimeSeries; import com.opengamma.timeseries.DoubleTimeSeriesOperators.BinaryOperator; import com.opengamma.timeseries.DoubleTimeSeriesOperators.UnaryOperator; import com.opengamma.timeseries.precise.PreciseDoubleTimeSeries; import com.opengamma.timeseries.precise.PreciseTimeSeries; /** * A time series that stores {@code double} data values against {@code Instant} times. * <p> * The "time" key to the time-series is an {@code Instant}. * See {@link PreciseTimeSeries} for details about the "time" represented as a {@code long}. */ public interface InstantDoubleTimeSeries extends PreciseDoubleTimeSeries<Instant> { /** * Gets an iterator over the instant-value pairs. * <p> * Although the pairs are expressed as instances of {@code Map.Entry}, * it is recommended to use the primitive methods on {@code InstantDoubleIterator}. * * @return the iterator, not null */ @Override // override for covariant return type InstantDoubleEntryIterator iterator(); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries subSeries(Instant startTime, Instant endTime); @Override // override for covariant return type InstantDoubleTimeSeries subSeries(Instant startTime, boolean includeStart, Instant endTime, boolean includeEnd); @Override // override for covariant return type InstantDoubleTimeSeries subSeriesFast(long startTime, long endTime); @Override // override for covariant return type InstantDoubleTimeSeries subSeriesFast(long startTime, boolean includeStart, long endTime, boolean includeEnd); @Override // override for covariant return type InstantDoubleTimeSeries head(int numItems); @Override // override for covariant return type InstantDoubleTimeSeries tail(int numItems); @Override // override for covariant return type InstantDoubleTimeSeries lag(int lagCount); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries operate(UnaryOperator operator); @Override // override for covariant return type InstantDoubleTimeSeries operate(double other, BinaryOperator operator); @Override // override for covariant return type InstantDoubleTimeSeries operate(PreciseDoubleTimeSeries<?> otherTimeSeries, BinaryOperator operator); @Override // override for covariant return type InstantDoubleTimeSeries unionOperate(PreciseDoubleTimeSeries<?> otherTimeSeries, BinaryOperator operator); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries add(double amountToAdd); @Override // override for covariant return type InstantDoubleTimeSeries add(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionAdd(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries subtract(double amountToSubtract); @Override // override for covariant return type InstantDoubleTimeSeries subtract(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionSubtract(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries multiply(double amountToMultiplyBy); @Override // override for covariant return type InstantDoubleTimeSeries multiply(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionMultiply(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries divide(double amountToDivideBy); @Override // override for covariant return type InstantDoubleTimeSeries divide(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionDivide(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries power(double power); @Override // override for covariant return type InstantDoubleTimeSeries power(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionPower(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries minimum(double minValue); @Override // override for covariant return type InstantDoubleTimeSeries minimum(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionMinimum(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries maximum(double maxValue); @Override // override for covariant return type InstantDoubleTimeSeries maximum(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionMaximum(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries average(double value); @Override // override for covariant return type InstantDoubleTimeSeries average(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries unionAverage(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries intersectionFirstValue(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries intersectionSecondValue(DoubleTimeSeries<?> other); @Override // override for covariant return type InstantDoubleTimeSeries noIntersectionOperation(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeries negate(); @Override // override for covariant return type InstantDoubleTimeSeries reciprocal(); @Override // override for covariant return type InstantDoubleTimeSeries log(); @Override // override for covariant return type InstantDoubleTimeSeries log10(); @Override // override for covariant return type InstantDoubleTimeSeries abs(); //------------------------------------------------------------------------- @Override // override for covariant return type InstantDoubleTimeSeriesBuilder toBuilder(); }