@Override
 public Result<ReferenceAmount<Pair<String, Currency>>> calculatePV01(
     Environment env, DeliverableSwapFutureTrade trade) {
   Result<DeliverableSwapFutureCalculator> calculatorResult =
       _deliverableSwapFutureCalculatorFactory.createCalculator(env, trade);
   if (!calculatorResult.isSuccess()) {
     return Result.failure(calculatorResult);
   }
   return calculatorResult.getValue().calculatePV01();
 }
 @Override
 public Result<BucketedCurveSensitivities> calculateBucketedZeroIRDelta(
     Environment env, DeliverableSwapFutureTrade trade) {
   Result<DeliverableSwapFutureCalculator> calculatorResult =
       _deliverableSwapFutureCalculatorFactory.createCalculator(env, trade);
   if (!calculatorResult.isSuccess()) {
     return Result.failure(calculatorResult);
   }
   return calculatorResult.getValue().calculateBucketedZeroIRDelta();
 }
 @Override
 public Result<Double> calculateSecurityModelPrice(
     Environment env, DeliverableSwapFutureTrade trade) {
   Result<DeliverableSwapFutureCalculator> calculatorResult =
       _deliverableSwapFutureCalculatorFactory.createCalculator(env, trade);
   if (!calculatorResult.isSuccess()) {
     return Result.failure(calculatorResult);
   }
   return calculatorResult.getValue().calculateSecurityModelPrice();
 }