/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.model.volatility.discrete; import java.io.Serializable; import java.util.List; import com.opengamma.analytics.math.function.VectorFunctionProvider; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.tuple.DoublesPair; /** * Abstraction for anything that provides a {@link DiscreteVolatilityFunction} for a set of expiry-strike points */ public abstract class DiscreteVolatilityFunctionProvider implements VectorFunctionProvider<DoublesPair>, Serializable { /** * Make a {@link DiscreteVolatilityFunction} for the given expiry-strike points; this will map from some model * parameters to volatilities at the expiry-strike points * @param expiryStrikePoints List of expiry-strike points that the returned {@link DiscreteVolatilityFunction} * must give volatilities for * @return a {@link DiscreteVolatilityFunction} */ @Override public DiscreteVolatilityFunction from(final List<DoublesPair> expiryStrikePoints) { ArgumentChecker.notNull(expiryStrikePoints, "expiryStrikePoints"); return from(expiryStrikePoints.toArray(new DoublesPair[0])); } /** * Make a {@link DiscreteVolatilityFunction} for the given expiry-strike points; this will map from some model * parameters to volatilities at the expiry-strike points * @param expiryStrikePoints Arrays of expiry-strike points that the returned {@link DiscreteVolatilityFunction} * must give volatilities for * @return a {@link DiscreteVolatilityFunction} */ @Override public abstract DiscreteVolatilityFunction from(final DoublesPair[] expiryStrikePoints); }