Class PointSensitivities
- java.lang.Object
-
- com.opengamma.strata.market.sensitivity.PointSensitivities
-
- All Implemented Interfaces:
FxConvertible<PointSensitivities>
,Serializable
,org.joda.beans.Bean
,org.joda.beans.ImmutableBean
public final class PointSensitivities extends Object implements FxConvertible<PointSensitivities>, org.joda.beans.ImmutableBean, Serializable
A collection of point sensitivities.Contains a list of point sensitivity objects, each referring to a specific point on a curve that was queried. The order of the list has no specific meaning, but does allow duplicates.
For example, the point sensitivity for present value on a FRA might contain two entries, one for the Ibor forward curve and one for the discount curve. Each entry identifies the date that the curve was queried and the resulting multiplier.
When creating an instance, consider using
MutablePointSensitivities
.One way of viewing this class is as a
Map
from a specific sensitivity key to adouble
sensitivity value. However, instead or being structured as aMap
, the data is structured as aList
, with the key and value in each entry.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PointSensitivities.Meta
The meta-bean forPointSensitivities
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PointSensitivities
combinedWith(PointSensitivities other)
Combines this point sensitivities with another instance.PointSensitivities
convertedTo(Currency resultCurrency, FxRateProvider rateProvider)
Converts this instance to an equivalent amount in the specified currency.static PointSensitivities
empty()
An empty sensitivity instance.boolean
equals(Object obj)
boolean
equalWithTolerance(PointSensitivities other, double tolerance)
Checks if this sensitivity equals another within the specified tolerance.ImmutableList<PointSensitivity>
getSensitivities()
Gets the point sensitivities.int
hashCode()
PointSensitivities
mapSensitivities(DoubleUnaryOperator operator)
Applies an operation to the sensitivities in this instance.static PointSensitivities.Meta
meta()
The meta-bean forPointSensitivities
.PointSensitivities.Meta
metaBean()
PointSensitivities
multipliedBy(double factor)
Multiplies the sensitivities in this instance by the specified factor.PointSensitivities
normalized()
Normalizes the point sensitivities by sorting and merging.static PointSensitivities
of(PointSensitivity... sensitivity)
Obtains an instance from an array of sensitivity entries.static PointSensitivities
of(List<? extends PointSensitivity> sensitivities)
Obtains an instance from a list of sensitivity entries.int
size()
Gets the number of sensitivity entries.MutablePointSensitivities
toMutable()
Returns a mutable version of this object.String
toString()
-
-
-
Method Detail
-
empty
public static PointSensitivities empty()
An empty sensitivity instance.- Returns:
- the empty instance
-
of
public static PointSensitivities of(PointSensitivity... sensitivity)
Obtains an instance from an array of sensitivity entries.- Parameters:
sensitivity
- the sensitivity entry- Returns:
- the sensitivities instance
-
of
public static PointSensitivities of(List<? extends PointSensitivity> sensitivities)
Obtains an instance from a list of sensitivity entries.- Parameters:
sensitivities
- the list of sensitivity entries- Returns:
- the sensitivities instance
-
size
public int size()
Gets the number of sensitivity entries.- Returns:
- the size of the internal list of point sensitivities
-
combinedWith
public PointSensitivities combinedWith(PointSensitivities other)
Combines this point sensitivities with another instance.This returns a new sensitivity instance with a combined list of point sensitivities. This instance is immutable and unaffected by this method. The result may contain duplicate point sensitivities.
- Parameters:
other
- the other point sensitivities- Returns:
- a
PointSensitivities
based on this one, with the other instance added
-
multipliedBy
public PointSensitivities multipliedBy(double factor)
Multiplies the sensitivities in this instance by the specified factor.The result will consist of the same entries, but with each sensitivity value multiplied. This instance is immutable and unaffected by this method.
- Parameters:
factor
- the multiplicative factor- Returns:
- a
PointSensitivities
based on this one, with each sensitivity multiplied by the factor
-
mapSensitivities
public PointSensitivities mapSensitivities(DoubleUnaryOperator operator)
Applies an operation to the sensitivities in this instance.The result will consist of the same entries, but with the operator applied to each sensitivity value. This instance is immutable and unaffected by this method.
This is used to apply a mathematical operation to the sensitivity values. For example, the operator could multiply the sensitivities by a constant, or take the inverse.
inverse = base.mapSensitivities(value -> 1 / value);
- Parameters:
operator
- the operator to be applied to the sensitivities- Returns:
- a
PointSensitivities
based on this one, with the operator applied to the sensitivity values
-
normalized
public PointSensitivities normalized()
Normalizes the point sensitivities by sorting and merging.The list of sensitivities is sorted and then merged. Any two entries that represent the same curve query are merged. For example, if there are two point sensitivities that were created based on the same curve, currency and fixing date, then the entries are combined, summing the sensitivity value.
The intention is that normalization occurs after gathering all the point sensitivities.
This instance is immutable and unaffected by this method.
- Returns:
- a
PointSensitivities
based on this one, with the sensitivities normalized
-
toMutable
public MutablePointSensitivities toMutable()
Returns a mutable version of this object.The result is an instance of the mutable
MutablePointSensitivities
. It will contain the same individual sensitivity entries.- Returns:
- the mutable sensitivity instance, not null
-
equalWithTolerance
public boolean equalWithTolerance(PointSensitivities other, double tolerance)
Checks if this sensitivity equals another within the specified tolerance.This returns true if the two instances have the list of
PointSensitivity
, where the sensitivitydouble
values are compared within the specified tolerance. It is expected that this comparator will be used on the normalized version of the sensitivity.- Parameters:
other
- the other sensitivitytolerance
- the tolerance- Returns:
- true if equal up to the tolerance
-
convertedTo
public PointSensitivities convertedTo(Currency resultCurrency, FxRateProvider rateProvider)
Description copied from interface:FxConvertible
Converts this instance to an equivalent amount in the specified currency.The result, which may be of a different type, will be expressed in terms of the given currency. Any FX conversion that is required will use rates from the provider.
- Specified by:
convertedTo
in interfaceFxConvertible<PointSensitivities>
- Parameters:
resultCurrency
- the currency of the resultrateProvider
- the provider of FX rates- Returns:
- the converted instance, which should be expressed in the specified currency
-
meta
public static PointSensitivities.Meta meta()
The meta-bean forPointSensitivities
.- Returns:
- the meta-bean, not null
-
metaBean
public PointSensitivities.Meta metaBean()
- Specified by:
metaBean
in interfaceorg.joda.beans.Bean
-
getSensitivities
public ImmutableList<PointSensitivity> getSensitivities()
Gets the point sensitivities.Each entry includes details of the market data query it relates to.
- Returns:
- the value of the property, not null
-
-