Class AbstractProductComponent

All Implemented Interfaces:
Serializable, Product, TermStructureMonteCarloProduct, MonteCarloProduct
Direct Known Subclasses:
AbstractIndex, AbstractPeriod, AccrualAccount, Cashflow, Choice, ExpectedTailLoss, ExposureEstimator, IndexedValue, Numeraire, Option, Portfolio, ProductCollection, Selector

public abstract class AbstractProductComponent extends AbstractTermStructureMonteCarloProduct implements Serializable
Base class for product components. Product components are small functions mapping a vector of random variables to a random variable. Components are numeraire adjusted and can be valued on its own.
Version:
1.0
Author:
Christian Fries
See Also:
  • Constructor Details

    • AbstractProductComponent

      public AbstractProductComponent(String currency)
    • AbstractProductComponent

      public AbstractProductComponent()
  • Method Details

    • queryUnderlyings

      public abstract Set<String> queryUnderlyings()
      Returns a set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
      Returns:
      A set of underlying names referenced by this product component (i.e., required for valuation) or null if none.
    • getValues

      public Map<String,Object> getValues(double evaluationTime, TermStructureMonteCarloSimulationModel model) throws CalculationException
      Description copied from interface: TermStructureMonteCarloProduct
      This method returns the valuation of the product within the specified model, evaluated at a given evalutationTime. The valuation is returned in terms of a map. The map may contain additional information. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.
      Specified by:
      getValues in interface TermStructureMonteCarloProduct
      Overrides:
      getValues in class AbstractTermStructureMonteCarloProduct
      Parameters:
      evaluationTime - The time on which this products value should be observed.
      model - The model used to price the product.
      Returns:
      The random variable representing the value of the product discounted to evaluation time
      Throws:
      CalculationException - Thrown if the valuation fails, specific cause may be available via the cause() method.
    • getExecutor

      protected static ThreadPoolExecutor getExecutor()