Interface Product

All Known Subinterfaces:
AnalyticProduct, AnalyticProduct, AnalyticVolatilityCubeProduct, DescribedProduct<T>, FiniteDifference1DProduct, FourierTransformProduct, MonteCarloProduct, TermStructureMonteCarloProduct
All Known Implementing Classes:
AbstractAnalyticProduct, AbstractAnalyticProduct, AbstractAnalyticVolatilityCubeProduct, AbstractAssetMonteCarloProduct, AbstractFourierTransformProduct, AbstractIndex, AbstractLIBORMonteCarloProduct, AbstractMonteCarloProduct, AbstractPeriod, AbstractProductComponent, AbstractSingleSwapRateProduct, AbstractTermStructureMonteCarloProduct, AccrualAccount, AccruedInterest, AnalyticModelForwardCurveIndex, AnalyticModelIndex, AnnuityDummyProduct, AsianOption, BasketOption, BermudanDigitalOption, BermudanOption, BermudanSwaption, BermudanSwaptionFromSwapSchedules, BlackScholesDeltaHedgedPortfolio, BlackScholesHedgedPortfolio, Bond, Bond, Bond, BondWithForeignNumeraire, CancelableSwap, Cap, Caplet, CappedFlooredIndex, CapShiftedVol, Cashflow, Cashflow, Cashflow, CashSettledPayerSwaption, CashSettledReceiverSwaption, Choice, CMSOption, ConstantMaturitySwap, ConstantMaturitySwaprate, DateIndex, DeltaHedgedPortfolioWithAAD, Deposit, Deposit, DigitalCaplet, DigitalFloorlet, DigitalOption, DigitalOption, DigitalOptionDeltaLikelihood, EuropeanOption, EuropeanOption, EuropeanOptionDeltaLikelihood, EuropeanOptionDeltaPathwise, EuropeanOptionDeltaPathwiseForGeometricModel, EuropeanOptionGammaLikelihood, EuropeanOptionGammaPathwise, EuropeanOptionRhoLikelihood, EuropeanOptionRhoPathwise, EuropeanOptionThetaPathwise, EuropeanOptionVegaLikelihood, EuropeanOptionVegaPathwise, EuropeanOptionWithBoundary, ExpectedTailLoss, ExposureEstimator, FDMEuropeanCallOption, FDMEuropeanPutOption, FiniteDifferenceDeltaHedgedPortfolio, FiniteDifferenceHedgedPortfolio, FixedCoupon, FlexiCap, Forward, Forward, ForwardAgreement, ForwardAgreementWithFundingRequirement, ForwardCurveIndex, ForwardRateAgreement, ForwardRateAgreement, ForwardRateAgreementGeneralized, ForwardRateVolatilitySurfaceCurvature, HybridAssetMonteCarloProduct, IndexedValue, InterestRateMonteCarloProductFactory.SwapLegMonteCarlo, InterestRateMonteCarloProductFactory.SwapMonteCarlo, InterestRateMonteCarloProductFactory.SwaptionPhysicalMonteCarlo, LaggedIndex, LIBORBond, LIBORIndex, LinearCombinationIndex, LocalRiskMinimizingHedgePortfolio, MarketForwardRateAgreement, MarketForwardRateAgreement, MaxIndex, MinIndex, MoneyMarketAccount, NormalizingDummyProduct, Numeraire, NumerairePerformanceIndex, NumerairePerformanceOnScheduleIndex, Option, Performance, Performance, PerformanceIndex, Period, Portfolio, Portfolio, Portfolio, PortfolioMonteCarloProduct, PowIndex, ProductCollection, ProductIndex, Selector, SimpleCappedFlooredFloatingRateBond, SimpleSwap, SimpleZeroSwap, SingleAssetFourierProductFactory.DigitalOptionFourierMethod, SingleAssetFourierProductFactory.EuropeanOptionFourierMethod, SingleAssetMonteCarloProductFactory.DigitalOptionMonteCarlo, SingleAssetMonteCarloProductFactory.EuropeanOptionMonteCarlo, Swap, Swap, Swap, SwapAnnuity, SwapAnnuity, SwapLeg, SwapLeg, SwapLeg, SwapLegWithFundingProvider, SwaprateCovarianceAnalyticApproximation, Swaption, SwaptionAnalyticApproximation, SwaptionAnalyticApproximationRebonato, SwaptionATM, SwaptionFromSwapSchedules, SwaptionGeneralizedAnalyticApproximation, SwaptionSimple, SwaptionSingleCurve, SwaptionSingleCurveAnalyticApproximation, SwaptionWithComponents, SwapWithComponents, TimeDiscreteEndOfMonthIndex, TriggerIndex, UnsupportedIndex, UnsupportedProduct, WorstOfExpressCertificate

public interface Product
Interface implemented by all financial product which may be valued by a model.
Version:
1.0
Author:
Christian Fries
  • Method Summary

    Modifier and Type
    Method
    Description
    getValue(double evaluationTime, Model model)
    Return the valuation of the product using the given model.
    default Map<String,Object>
    getValues(double evaluationTime, Model model)
    Return the valuation of the product using the given model.
  • Method Details

    • getValue

      Object getValue(double evaluationTime, Model model)
      Return the valuation of the product using the given model. Implement this method using a checked cast of the model to a derived model for which the product provides a valuation algorithm. Example: an interest rate product requires that the passed model object implements the interface of an interest rate model. Since there is no polymorphism on arguments (see Double Dynamic Dispatch), we reply on a checked cast.
      Parameters:
      evaluationTime - The evaluation time as double. Cash flows prior and including this time are not considered.
      model - The model under which the product is valued.
      Returns:
      Object containing the value of the product using the given model.
    • getValues

      default Map<String,Object> getValues(double evaluationTime, Model model)
      Return the valuation of the product using the given model. Implement this method using a checked cast of the model to a derived model for which the product provides a valuation algorithm. Example: an interest rate product requires that the passed model object implements the interface of an interest rate model. Since there is no polymorphism on arguments (see Double Dynamic Dispatch), we reply on a checked cast.
      Parameters:
      evaluationTime - The evaluation time as double. Cash flows prior and including this time are not considered.
      model - The model under which the product is valued.
      Returns:
      Map containing the value of the product using the given model.