Package org.isda.cdm
Class ResolvablePayoutQuantity
- java.lang.Object
-
- com.rosetta.model.lib.RosettaModelObject
-
- org.isda.cdm.ResolvablePayoutQuantity
-
- All Implemented Interfaces:
com.rosetta.model.lib.GlobalKey
@RosettaClass public class ResolvablePayoutQuantity extends com.rosetta.model.lib.RosettaModelObject implements com.rosetta.model.lib.GlobalKey
Generic class to specify the quantity for different payout legs in a contractual product, when that quantity can vary across payout legs or across time. A resolvable quantity can always be resolved into one number based on: (i) the quantity notation that must be specified alongside the contractual product description and (ii) a given date, where applicable. In addition to the base case where quantity is directly specified as a number as part of the quantity notation, the use cases are: (i) quantity based on some pre-defined schedule (eg amortising notional), (ii) quantity based on some pre-defined events (eg resetting cross-currency notional), or quantity set as reference to another quantity (eg equity notional as no. securities x price).- Version:
- 2.5.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ResolvablePayoutQuantity.ResolvablePayoutQuantityBuilder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ResolvablePayoutQuantity.ResolvablePayoutQuantityBuilder
builder()
boolean
equals(java.lang.Object o)
MetaFields
getMeta()
QuantityMultiplier
getQuantityMultiplier()
Quantity multiplier is specified on top of a reference quantity and is used as a multiplying factor when resolving the quantity.QuantityNotationEnum
getQuantityNotationTag()
Notation tag to be used as a key to fetch the payout quantity from the appropriate quantity notation, that is provided alongside the contractual product.ReferenceWithMetaResolvablePayoutQuantity
getQuantityReference()
Reference quantity when resolvable quantity is defined as relative to another (resolvable) quantity.NonNegativeQuantitySchedule
getQuantitySchedule()
Quantity specified as an absolute number, (possibly) with some step schedule, (possibly) with some unit, such as the currency in the case of a notional.java.lang.Boolean
getReset()
Whether the quantity is resettableint
hashCode()
com.rosetta.model.lib.meta.RosettaMetaData<? extends ResolvablePayoutQuantity>
metaData()
void
process(com.rosetta.model.lib.path.RosettaPath path, com.rosetta.model.lib.process.Processor processor)
ResolvablePayoutQuantity.ResolvablePayoutQuantityBuilder
toBuilder()
java.lang.String
toString()
-
-
-
Method Detail
-
getMeta
public final MetaFields getMeta()
- Specified by:
getMeta
in interfacecom.rosetta.model.lib.GlobalKey
-
getQuantityMultiplier
public final QuantityMultiplier getQuantityMultiplier()
Quantity multiplier is specified on top of a reference quantity and is used as a multiplying factor when resolving the quantity. A quantity multiplier can only exist when the resolvable quantity specifies a reference quantity.
-
getQuantityNotationTag
@RosettaSynonym(value="", source="FpML_5_10") public final QuantityNotationEnum getQuantityNotationTag()
Notation tag to be used as a key to fetch the payout quantity from the appropriate quantity notation, that is provided alongside the contractual product. For instance: if this quantity notation tag is 'Notional', the actual quantity will have to be fetched from the quantity notation labelled as 'Notional'.
-
getQuantityReference
@RosettaSynonym(value="relativeNotionalAmount", source="FpML_5_10") public final ReferenceWithMetaResolvablePayoutQuantity getQuantityReference()
Reference quantity when resolvable quantity is defined as relative to another (resolvable) quantity. A resolvable quantity needs to contain either an absolute quantity or a reference to another (resolvable) quantity. This requirement is captured by a choice rule on the class.
-
getQuantitySchedule
public final NonNegativeQuantitySchedule getQuantitySchedule()
Quantity specified as an absolute number, (possibly) with some step schedule, (possibly) with some unit, such as the currency in the case of a notional. There needs to be at least 1 such absolutely defined quantity across payout legs of a product, to define an anchor that other payout quantities can refer to. This is enforced by a data rule on the Payout class
-
getReset
@RosettaSynonym(value="notionalReset", source="FpML_5_10") public final java.lang.Boolean getReset()
Whether the quantity is resettable
-
metaData
public com.rosetta.model.lib.meta.RosettaMetaData<? extends ResolvablePayoutQuantity> metaData()
- Specified by:
metaData
in classcom.rosetta.model.lib.RosettaModelObject
-
toBuilder
public ResolvablePayoutQuantity.ResolvablePayoutQuantityBuilder toBuilder()
- Specified by:
toBuilder
in classcom.rosetta.model.lib.RosettaModelObject
-
builder
public static ResolvablePayoutQuantity.ResolvablePayoutQuantityBuilder builder()
-
process
public void process(com.rosetta.model.lib.path.RosettaPath path, com.rosetta.model.lib.process.Processor processor)
- Specified by:
process
in classcom.rosetta.model.lib.RosettaModelObject
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-