• java.lang.Object
• All Implemented Interfaces:
CalculationFunction<TermDepositTrade>

public class TermDepositTradeCalculationFunction
extends Object
implements CalculationFunction<TermDepositTrade>
Perform calculations on a single TermDepositTrade for each of a set of scenarios.

This uses the standard discounting calculation method. An instance of RatesMarketDataLookup must be specified. The supported built-in measures are:

• ### Constructor Summary

Constructors
Constructor Description
TermDepositTradeCalculationFunction()
Creates an instance.
• ### Method Summary

All Methods
Modifier and Type Method Description
Map<Measure,​Result<?>> calculate​(TermDepositTrade trade, Set<Measure> measures, CalculationParameters parameters, ScenarioMarketData scenarioMarketData, ReferenceData refData)
Calculates values of multiple measures for the target using multiple sets of market data.
Optional<String> identifier​(TermDepositTrade target)
Returns an identifier that should uniquely identify the specified target.
Currency naturalCurrency​(TermDepositTrade trade, ReferenceData refData)
Returns the "natural" currency for the specified target.
FunctionRequirements requirements​(TermDepositTrade trade, Set<Measure> measures, CalculationParameters parameters, ReferenceData refData)
Determines the market data required by this function to perform its calculations.
Set<Measure> supportedMeasures()
Returns the set of measures that the function can calculate.
Class<TermDepositTrade> targetType()
Gets the target type that this function applies to.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

public TermDepositTradeCalculationFunction()
Creates an instance.
• ### Method Detail

• #### targetType

public Class<TermDepositTrade> targetType()
Description copied from interface: CalculationFunction
Gets the target type that this function applies to.

The target type will typically be a concrete class.

Specified by:
targetType in interface CalculationFunction<TermDepositTrade>
Returns:
the target type
• #### supportedMeasures

public Set<Measure> supportedMeasures()
Description copied from interface: CalculationFunction
Returns the set of measures that the function can calculate.
Specified by:
supportedMeasures in interface CalculationFunction<TermDepositTrade>
Returns:
the read-only set of measures that the function can calculate
• #### identifier

public Optional<String> identifier​(TermDepositTrade target)
Description copied from interface: CalculationFunction
Returns an identifier that should uniquely identify the specified target.

This identifier is used in error messages to identify the target. This should normally be overridden to provide a suitable identifier. For example, if the target is a trade, there will typically be a trade identifier available.

This method must not throw an exception.

Specified by:
identifier in interface CalculationFunction<TermDepositTrade>
Parameters:
target - the target of the calculation
Returns:
the identifier of the target, empty if no suitable identifier available
• #### naturalCurrency

public Currency naturalCurrency​(TermDepositTrade trade,
ReferenceData refData)
Description copied from interface: CalculationFunction
Returns the "natural" currency for the specified target.

This is the currency to which currency amounts are converted if the "natural" reporting currency is requested using ReportingCurrency.NATURAL. Most targets have a "natural" currency, for example the currency of a FRA or the base currency of an FX forward.

It is required that all functions that return a currency-convertible measure must choose a "natural" currency for each trade. The choice must be consistent not random, given the same trade the same currency must be returned. This might involve picking, the first leg or base currency from a currency pair. An exception must only be thrown if the function handles no currency-convertible measures.

Specified by:
naturalCurrency in interface CalculationFunction<TermDepositTrade>
Parameters:
trade - the target of the calculation
refData - the reference data to be used in the calculation
Returns:
the "natural" currency of the target
• #### requirements

public FunctionRequirements requirements​(TermDepositTrade trade,
Set<Measure> measures,
CalculationParameters parameters,
ReferenceData refData)
Description copied from interface: CalculationFunction
Determines the market data required by this function to perform its calculations.

Any market data needed by the calculate method should be specified.

The set of measures may include measures that are not supported by this function.

Specified by:
requirements in interface CalculationFunction<TermDepositTrade>
Parameters:
trade - the target of the calculation
measures - the set of measures to be calculated
parameters - the parameters that affect how the calculation is performed
refData - the reference data to be used in the calculation
Returns:
the requirements specifying the market data the function needs to perform calculations
• #### calculate

public Map<Measure,​Result<?>> calculate​(TermDepositTrade trade,
Set<Measure> measures,
CalculationParameters parameters,
ScenarioMarketData scenarioMarketData,
ReferenceData refData)
Description copied from interface: CalculationFunction
Calculates values of multiple measures for the target using multiple sets of market data.

The set of measures must only contain measures that the function supports, as returned by CalculationFunction.supportedMeasures(). The market data must provide at least the set of data requested by CalculationFunction.requirements(CalculationTarget, Set, CalculationParameters, ReferenceData).

The result of this method will often be an instance of ScenarioArray, which handles the common case where there is one calculated value for each scenario. However, it is also possible for the function to calculate an aggregated result, such as the maximum or minimum value across all scenarios, in which case the result would not implement ScenarioArray.

Specified by:
calculate in interface CalculationFunction<TermDepositTrade>
Parameters:
trade - the target of the calculation
measures - the set of measures to calculate
parameters - the parameters that affect how the calculation is performed
scenarioMarketData - the multi-scenario market data to be used in the calculation
refData - the reference data to be used in the calculation
Returns:
the read-only map of calculated values, keyed by their measure