/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.sesame.deliverableswapfuture; import com.opengamma.analytics.util.amount.ReferenceAmount; import com.opengamma.financial.analytics.model.fixedincome.BucketedCurveSensitivities; import com.opengamma.util.money.Currency; import com.opengamma.util.result.Result; import com.opengamma.util.tuple.Pair; /** * Common interface for deliverable swap future calculators. */ public interface DeliverableSwapFutureCalculator { /** * Calculates the price of the DeliverableSwapFuture via curves. * * @return result containing the Price if successfully created, a failure result otherwise. */ Result<Double> calculateSecurityModelPrice(); /** * Calculates the per curve PV01 of the DeliverableSwapFuture. * * @return result containing the, per curve, PV01 if successfully created, a failure result otherwise. */ Result<ReferenceAmount<Pair<String, Currency>>> calculatePV01(); /** * Calculates the sensitivity w.r.t the zero rates for the DeliverableSwapFuture. * * @return result containing the bucketed zero rate sensitivities if successfully created, a failure result otherwise. */ Result<BucketedCurveSensitivities> calculateBucketedZeroIRDelta(); }