/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.fedfundsfuture; import com.opengamma.sesame.Environment; import com.opengamma.sesame.trade.FedFundsFutureTrade; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.money.MultipleCurrencyAmount; import com.opengamma.util.result.Result; /** * Default implementation for returning results for federal funds futures. */ public class DefaultFedFundsFutureFn implements FedFundsFutureFn { private final FedFundsFutureCalculatorFactory _fedFundsFutureCalculatorFactory; public DefaultFedFundsFutureFn(FedFundsFutureCalculatorFactory fedFundsFutureCalculatorFactory) { _fedFundsFutureCalculatorFactory = ArgumentChecker.notNull(fedFundsFutureCalculatorFactory, "fedFundsFutureCalculatorFactory"); } @Override public Result<MultipleCurrencyAmount> calculatePV(Environment env, FedFundsFutureTrade trade) { Result<FedFundsFutureCalculator> calculatorResult = _fedFundsFutureCalculatorFactory.createCalculator(env, trade); if (!calculatorResult.isSuccess()) { return Result.failure(calculatorResult); } return calculatorResult.getValue().calculatePV(); } }