/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.timeseries.returns; import java.util.List; import org.apache.commons.lang.Validate; import com.opengamma.timeseries.DoubleTimeSeries; import com.opengamma.timeseries.TimeSeriesException; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.CalculationMode; /** * */ public abstract class RelativeTimeSeriesReturnCalculator extends TimeSeriesReturnCalculator { public RelativeTimeSeriesReturnCalculator(final CalculationMode mode) { super(mode); } protected void testInputData(final DoubleTimeSeries<?>... x) { Validate.notNull(x, "x"); ArgumentChecker.notEmpty(x, "x"); Validate.notNull(x[0], "first time series"); Validate.notNull(x[1], "second time series"); if (getMode() == CalculationMode.STRICT) { final int size = x[0].size(); for (int i = 1; i < x.length; i++) { if (x[i].size() != size) { throw new TimeSeriesException("Time series were not all the same length"); } } final List<?> times1 = x[0].times(); List<?> times2; for (int i = 1; i < x.length; i++) { times2 = x[1].times(); for (final Object t : times1) { if (!times2.contains(t)) { throw new TimeSeriesException("Time series did not contain all the same dates"); } } } } } }