/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.timeseries.precise.zdt; import org.threeten.bp.ZoneId; import org.threeten.bp.ZonedDateTime; 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 ZonedDateTime} times. * <p> * The "time" key to the time-series is an {@code ZonedDateTime}. * See {@link PreciseTimeSeries} for details about the "time" represented as a {@code long}. */ public interface ZonedDateTimeDoubleTimeSeries extends PreciseDoubleTimeSeries<ZonedDateTime> { /** * Gets the applicable time-zone. * * @return the time-zone, not null */ ZoneId getZone(); /** * Returns this time-series with a different time-zone. * * @param zone the time-zone, not null * @return the same time-series with the specified zone, not null */ ZonedDateTimeDoubleTimeSeries withZone(ZoneId zone); //------------------------------------------------------------------------- /** * 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 ZonedDateTimeDoubleIterator}. * * @return the iterator, not null */ @Override // override for covariant return type ZonedDateTimeDoubleEntryIterator iterator(); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subSeries(ZonedDateTime startTime, ZonedDateTime endTime); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subSeries(ZonedDateTime startTime, boolean includeStart, ZonedDateTime endTime, boolean includeEnd); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subSeriesFast(long startTime, long endTime); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subSeriesFast(long startTime, boolean includeStart, long endTime, boolean includeEnd); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries head(int numItems); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries tail(int numItems); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries lag(int lagCount); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries operate(UnaryOperator operator); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries operate(double other, BinaryOperator operator); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries operate(PreciseDoubleTimeSeries<?> otherTimeSeries, BinaryOperator operator); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionOperate(PreciseDoubleTimeSeries<?> otherTimeSeries, BinaryOperator operator); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries add(double amountToAdd); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries add(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionAdd(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subtract(double amountToSubtract); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries subtract(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionSubtract(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries multiply(double amountToMultiplyBy); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries multiply(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionMultiply(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries divide(double amountToDivideBy); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries divide(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionDivide(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries power(double power); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries power(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionPower(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries minimum(double minValue); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries minimum(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionMinimum(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries maximum(double maxValue); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries maximum(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionMaximum(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries average(double value); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries average(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries unionAverage(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries intersectionFirstValue(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries intersectionSecondValue(DoubleTimeSeries<?> other); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries noIntersectionOperation(DoubleTimeSeries<?> other); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries negate(); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries reciprocal(); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries log(); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries log10(); @Override // override for covariant return type ZonedDateTimeDoubleTimeSeries abs(); //------------------------------------------------------------------------- @Override // override for covariant return type ZonedDateTimeDoubleTimeSeriesBuilder toBuilder(); }