All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tools20022.repository.entity.CollateralMovement Maven / Gradle / Ivy

The newest version!
/* Tools20022 - API for ISO 20022
* Copyright (C) 2017 Tools20022.com - László Bukodi 
* 
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see .
*/

package com.tools20022.repository.entity;

import com.tools20022.metamodel.*;
import com.tools20022.repository.datatype.CurrencyAndAmount;
import com.tools20022.repository.GeneratedRepository;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import java.util.List;

/**
 * Provides the agreed amount and the collateral movement direction.
 * 

* Class diagram *

* *

* Constant fields: *

    *
  • {@linkplain com.tools20022.metamodel.MMBusinessComponent#getElement * element} = *
      *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmRelatedCollateralProposal * CollateralMovement.mmRelatedCollateralProposal}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmVariationMargin * CollateralMovement.mmVariationMargin}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmSegregatedIndependentAmount * CollateralMovement.mmSegregatedIndependentAmount}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmMarginCall * CollateralMovement.mmMarginCall}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmSecuritiesCollateralMovement * CollateralMovement.mmSecuritiesCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmCashCollateralMovement * CollateralMovement.mmCashCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralMovement#mmFinancialTransaction * CollateralMovement.mmFinancialTransaction}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessComponent#getAssociationDomain * associationDomain} = *
      *
    • * {@linkplain com.tools20022.repository.entity.PaymentObligation#mmRelatedCollateralMovement * PaymentObligation.mmRelatedCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.SecuritiesDeliveryObligation#mmRelatedCollateralMovement * SecuritiesDeliveryObligation.mmRelatedCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.MarginCall#mmCollateralMovement * MarginCall.mmCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.CollateralProposal#mmProposedCollateralMovement * CollateralProposal.mmProposedCollateralMovement}
    • *
    • * {@linkplain com.tools20022.repository.entity.FinancialTransaction#mmCollateralMovement * FinancialTransaction.mmCollateralMovement}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMTopLevelDictionaryEntry#getDataDictionary * dataDictionary} = * {@linkplain com.tools20022.repository.GeneratedRepository#mmdataDict * GeneratedRepository.mmdataDict}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName name} = * "CollateralMovement"
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Provides the agreed amount and the collateral movement direction."
  • *
*/ public class CollateralMovement { final static private AtomicReference mmObject_lazy = new AtomicReference<>(); protected CollateralProposal relatedCollateralProposal; /** * Collateral proposal for which collateral movements are detailed. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.CollateralProposal#mmProposedCollateralMovement * CollateralProposal.mmProposedCollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.CollateralProposal * CollateralProposal}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "RelatedCollateralProposal"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Collateral proposal for which collateral movements are detailed."
  • *
*/ public static final MMBusinessAssociationEnd mmRelatedCollateralProposal = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "RelatedCollateralProposal"; definition = "Collateral proposal for which collateral movements are detailed."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.CollateralProposal.mmProposedCollateralMovement; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.CollateralProposal.mmObject(); } }; protected CurrencyAndAmount variationMargin; /** * Amount of margin that will be delivered to one party by the other party * after rounding, threshold and minimum transfer amount are taken into * account. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType * simpleType} = * {@linkplain com.tools20022.repository.datatype.CurrencyAndAmount * CurrencyAndAmount}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "VariationMargin"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Amount of margin that will be delivered to one party by the other party after rounding, threshold and minimum transfer amount are taken into account." *
  • *
*/ public static final MMBusinessAttribute mmVariationMargin = new MMBusinessAttribute() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "VariationMargin"; definition = "Amount of margin that will be delivered to one party by the other party after rounding, threshold and minimum transfer amount are taken into account."; maxOccurs = 1; minOccurs = 1; simpleType_lazy = () -> CurrencyAndAmount.mmObject(); } public Method getGetterMethod() { try { return CollateralMovement.class.getMethod("getVariationMargin", new Class[]{}); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } }; protected CurrencyAndAmount segregatedIndependentAmount; /** * Amount of margin that will be delivered to one party by the other party * after rounding, threshold and minimum transfer amount are taken into * account. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType * simpleType} = * {@linkplain com.tools20022.repository.datatype.CurrencyAndAmount * CurrencyAndAmount}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "SegregatedIndependentAmount"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Amount of margin that will be delivered to one party by the other party after rounding, threshold and minimum transfer amount are taken into account." *
  • *
*/ public static final MMBusinessAttribute mmSegregatedIndependentAmount = new MMBusinessAttribute() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "SegregatedIndependentAmount"; definition = "Amount of margin that will be delivered to one party by the other party after rounding, threshold and minimum transfer amount are taken into account."; maxOccurs = 1; minOccurs = 1; simpleType_lazy = () -> CurrencyAndAmount.mmObject(); } public Method getGetterMethod() { try { return CollateralMovement.class.getMethod("getSegregatedIndependentAmount", new Class[]{}); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } }; protected List marginCall; /** * Magin call which needs to be executed. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.MarginCall#mmCollateralMovement * MarginCall.mmCollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.MarginCall * MarginCall}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "MarginCall"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = "Magin call which needs to be executed."
  • *
*/ public static final MMBusinessAssociationEnd mmMarginCall = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "MarginCall"; definition = "Magin call which needs to be executed."; minOccurs = 0; opposite_lazy = () -> com.tools20022.repository.entity.MarginCall.mmCollateralMovement; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.MarginCall.mmObject(); } }; protected List securitiesCollateralMovement; /** * Movement of assets in relation with collateral updates. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.SecuritiesDeliveryObligation#mmRelatedCollateralMovement * SecuritiesDeliveryObligation.mmRelatedCollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = * {@linkplain com.tools20022.repository.entity.SecuritiesDeliveryObligation * SecuritiesDeliveryObligation}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "SecuritiesCollateralMovement"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = "Movement of assets in relation with collateral updates."
  • *
*/ public static final MMBusinessAssociationEnd mmSecuritiesCollateralMovement = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "SecuritiesCollateralMovement"; definition = "Movement of assets in relation with collateral updates."; minOccurs = 0; opposite_lazy = () -> com.tools20022.repository.entity.SecuritiesDeliveryObligation.mmRelatedCollateralMovement; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.SecuritiesDeliveryObligation.mmObject(); } }; protected List cashCollateralMovement; /** * Movement of assets in relation with collateral updates. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.PaymentObligation#mmRelatedCollateralMovement * PaymentObligation.mmRelatedCollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.PaymentObligation * PaymentObligation}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "CashCollateralMovement"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = "Movement of assets in relation with collateral updates."
  • *
*/ public static final MMBusinessAssociationEnd mmCashCollateralMovement = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "CashCollateralMovement"; definition = "Movement of assets in relation with collateral updates."; minOccurs = 0; opposite_lazy = () -> com.tools20022.repository.entity.PaymentObligation.mmRelatedCollateralMovement; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.PaymentObligation.mmObject(); } }; protected FinancialTransaction financialTransaction; /** * Financial transaction to which the collateral management is associated. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.FinancialTransaction#mmCollateralMovement * FinancialTransaction.mmCollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = * {@linkplain com.tools20022.repository.entity.FinancialTransaction * FinancialTransaction}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CollateralMovement * CollateralMovement}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "FinancialTransaction"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Financial transaction to which the collateral management is associated." *
  • *
*/ public static final MMBusinessAssociationEnd mmFinancialTransaction = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CollateralMovement.mmObject(); registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "FinancialTransaction"; definition = "Financial transaction to which the collateral management is associated."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.FinancialTransaction.mmCollateralMovement; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.FinancialTransaction.mmObject(); } }; static public MMBusinessComponent mmObject() { mmObject_lazy.compareAndSet(null, new MMBusinessComponent() { { dataDictionary_lazy = () -> GeneratedRepository.mmdataDict; registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED; name = "CollateralMovement"; definition = "Provides the agreed amount and the collateral movement direction."; associationDomain_lazy = () -> Arrays.asList(com.tools20022.repository.entity.PaymentObligation.mmRelatedCollateralMovement, com.tools20022.repository.entity.SecuritiesDeliveryObligation.mmRelatedCollateralMovement, com.tools20022.repository.entity.MarginCall.mmCollateralMovement, com.tools20022.repository.entity.CollateralProposal.mmProposedCollateralMovement, com.tools20022.repository.entity.FinancialTransaction.mmCollateralMovement); element_lazy = () -> Arrays.asList(com.tools20022.repository.entity.CollateralMovement.mmRelatedCollateralProposal, com.tools20022.repository.entity.CollateralMovement.mmVariationMargin, com.tools20022.repository.entity.CollateralMovement.mmSegregatedIndependentAmount, com.tools20022.repository.entity.CollateralMovement.mmMarginCall, com.tools20022.repository.entity.CollateralMovement.mmSecuritiesCollateralMovement, com.tools20022.repository.entity.CollateralMovement.mmCashCollateralMovement, com.tools20022.repository.entity.CollateralMovement.mmFinancialTransaction); } @Override public Class getInstanceClass() { return CollateralMovement.class; } }); return mmObject_lazy.get(); } public CollateralProposal getRelatedCollateralProposal() { return relatedCollateralProposal; } public void setRelatedCollateralProposal(com.tools20022.repository.entity.CollateralProposal relatedCollateralProposal) { this.relatedCollateralProposal = relatedCollateralProposal; } public CurrencyAndAmount getVariationMargin() { return variationMargin; } public void setVariationMargin(CurrencyAndAmount variationMargin) { this.variationMargin = variationMargin; } public CurrencyAndAmount getSegregatedIndependentAmount() { return segregatedIndependentAmount; } public void setSegregatedIndependentAmount(CurrencyAndAmount segregatedIndependentAmount) { this.segregatedIndependentAmount = segregatedIndependentAmount; } public List getMarginCall() { return marginCall; } public void setMarginCall(List marginCall) { this.marginCall = marginCall; } public List getSecuritiesCollateralMovement() { return securitiesCollateralMovement; } public void setSecuritiesCollateralMovement(List securitiesCollateralMovement) { this.securitiesCollateralMovement = securitiesCollateralMovement; } public List getCashCollateralMovement() { return cashCollateralMovement; } public void setCashCollateralMovement(List cashCollateralMovement) { this.cashCollateralMovement = cashCollateralMovement; } public FinancialTransaction getFinancialTransaction() { return financialTransaction; } public void setFinancialTransaction(com.tools20022.repository.entity.FinancialTransaction financialTransaction) { this.financialTransaction = financialTransaction; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy