com.tools20022.repository.msg.LoanContract1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tools20022-api-payments Show documentation
Show all versions of tools20022-api-payments Show documentation
Java API for ISO 20022 - Payments business domain
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.msg;
import com.tools20022.metamodel.MMMessageAssociationEnd;
import com.tools20022.metamodel.MMMessageAttribute;
import com.tools20022.metamodel.MMMessageComponent;
import com.tools20022.metamodel.MMRegistrationStatus;
import com.tools20022.repository.choice.InterestPaymentSchedule1Choice;
import com.tools20022.repository.choice.InterestRate2Choice;
import com.tools20022.repository.choice.PaymentSchedule1Choice;
import com.tools20022.repository.codeset.ActiveCurrencyCode;
import com.tools20022.repository.datatype.ActiveCurrencyAndAmount;
import com.tools20022.repository.datatype.Exact1NumericText;
import com.tools20022.repository.datatype.ISODate;
import com.tools20022.repository.datatype.TrueFalseIndicator;
import com.tools20022.repository.entity.*;
import com.tools20022.repository.GeneratedRepository;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* Contract by which an amount of money in exchange for future repayment of the
* principal amount along with interest or other finance charges.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageElementContainer#getMessageElement
* messageElement} =
*
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmContractDocumentIdentification
* LoanContract1.mmContractDocumentIdentification}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmBuyer
* LoanContract1.mmBuyer}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmSeller
* LoanContract1.mmSeller}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmAmount
* LoanContract1.mmAmount}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmMaturityDate
* LoanContract1.mmMaturityDate}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmProlongationFlag
* LoanContract1.mmProlongationFlag}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmStartDate
* LoanContract1.mmStartDate}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmSettlementCurrency
* LoanContract1.mmSettlementCurrency}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmSpecialConditions
* LoanContract1.mmSpecialConditions}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmDurationCode
* LoanContract1.mmDurationCode}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmInterestRate
* LoanContract1.mmInterestRate}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmTranche
* LoanContract1.mmTranche}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmPaymentSchedule
* LoanContract1.mmPaymentSchedule}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmInterestSchedule
* LoanContract1.mmInterestSchedule}
* -
* {@linkplain com.tools20022.repository.msg.LoanContract1#mmIntraCompanyLoan
* LoanContract1.mmIntraCompanyLoan}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmCollateral
* LoanContract1.mmCollateral}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmSyndicatedLoan
* LoanContract1.mmSyndicatedLoan}
* - {@linkplain com.tools20022.repository.msg.LoanContract1#mmAttachment
* LoanContract1.mmAttachment}
*
*
* - {@linkplain com.tools20022.metamodel.MMMessageComponentType#getTrace
* trace} = {@linkplain com.tools20022.repository.entity.Loan Loan}
* -
* {@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.REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName name} =
* "LoanContract1"
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Contract by which an amount of money in exchange for future repayment of the principal amount along with interest or other finance charges."
*
*
*/
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "LoanContract1", propOrder = {"contractDocumentIdentification", "buyer", "seller", "amount", "maturityDate", "prolongationFlag", "startDate", "settlementCurrency", "specialConditions", "durationCode", "interestRate",
"tranche", "paymentSchedule", "interestSchedule", "intraCompanyLoan", "collateral", "syndicatedLoan", "attachment"})
public class LoanContract1 {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected DocumentIdentification22 contractDocumentIdentification;
/**
* Contract document referenced from this loan agreement.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getComplexType
* complexType} =
* {@linkplain com.tools20022.repository.msg.DocumentIdentification22
* DocumentIdentification22}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Security#mmIdentification
* Security.mmIdentification}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "CtrctDocId"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "ContractDocumentIdentification"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Contract document referenced from this loan agreement."
*
*/
public static final MMMessageAttribute mmContractDocumentIdentification = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Security.mmIdentification;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "CtrctDocId";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "ContractDocumentIdentification";
definition = "Contract document referenced from this loan agreement.";
maxOccurs = 1;
minOccurs = 1;
complexType_lazy = () -> com.tools20022.repository.msg.DocumentIdentification22.mmObject();
}
};
protected List buyer;
/**
* Party that is specified as the buyer for this loan agreement.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.TradeParty2
* TradeParty2}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessComponentTrace
* businessComponentTrace} =
* {@linkplain com.tools20022.repository.entity.BuyerRole BuyerRole}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Buyr"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Buyer"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Party that is specified as the buyer for this loan agreement."
*
*/
public static final MMMessageAssociationEnd mmBuyer = new MMMessageAssociationEnd() {
{
businessComponentTrace_lazy = () -> BuyerRole.mmObject();
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Buyr";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Buyer";
definition = "Party that is specified as the buyer for this loan agreement.";
minOccurs = 1;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.TradeParty2.mmObject();
}
};
protected List seller;
/**
* Party that is specified as the seller for this loan agreement.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.TradeParty2
* TradeParty2}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessComponentTrace
* businessComponentTrace} =
* {@linkplain com.tools20022.repository.entity.SellerRole SellerRole}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Sellr"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Seller"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Party that is specified as the seller for this loan agreement."
*
*/
public static final MMMessageAssociationEnd mmSeller = new MMMessageAssociationEnd() {
{
businessComponentTrace_lazy = () -> SellerRole.mmObject();
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Sellr";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Seller";
definition = "Party that is specified as the seller for this loan agreement.";
minOccurs = 1;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.TradeParty2.mmObject();
}
};
protected ActiveCurrencyAndAmount amount;
/**
* Loan amount as defined in the contract.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.ActiveCurrencyAndAmount
* ActiveCurrencyAndAmount}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Loan#mmPrincipalAmount
* Loan.mmPrincipalAmount}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Amt"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Amount"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Loan amount as defined in the contract."
*
*/
public static final MMMessageAttribute mmAmount = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Loan.mmPrincipalAmount;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Amt";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Amount";
definition = "Loan amount as defined in the contract.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ActiveCurrencyAndAmount.mmObject();
}
};
protected ISODate maturityDate;
/**
* Planned final repayment date at the time of issuance.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.ISODate
* ISODate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Asset#mmMaturityDate
* Asset.mmMaturityDate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "MtrtyDt"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "MaturityDate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Planned final repayment date at the time of issuance."
*
*/
public static final MMMessageAttribute mmMaturityDate = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Asset.mmMaturityDate;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "MtrtyDt";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "MaturityDate";
definition = "Planned final repayment date at the time of issuance.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ISODate.mmObject();
}
};
protected TrueFalseIndicator prolongationFlag;
/**
* Indicates whether the contract duration is extended or not.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.TrueFalseIndicator
* TrueFalseIndicator}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "PrlngtnFlg"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "ProlongationFlag"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicates whether the contract duration is extended or not."
*
*/
public static final MMMessageAttribute mmProlongationFlag = new MMMessageAttribute() {
{
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "PrlngtnFlg";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "ProlongationFlag";
definition = "Indicates whether the contract duration is extended or not.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> TrueFalseIndicator.mmObject();
}
};
protected ISODate startDate;
/**
* Start date of the loan contract.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.ISODate
* ISODate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Issuance#mmIssueDate
* Issuance.mmIssueDate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "StartDt"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "StartDate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Start date of the loan contract."
*
*/
public static final MMMessageAttribute mmStartDate = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Issuance.mmIssueDate;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "StartDt";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "StartDate";
definition = "Start date of the loan contract.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ISODate.mmObject();
}
};
protected ActiveCurrencyCode settlementCurrency;
/**
* Currency in which the loan is being settled.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.ActiveCurrencyCode
* ActiveCurrencyCode}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.SecuritiesConversion#mmConversionQuotedCurrency
* SecuritiesConversion.mmConversionQuotedCurrency}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "SttlmCcy"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SettlementCurrency"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Currency in which the loan is being settled."
*
*/
public static final MMMessageAttribute mmSettlementCurrency = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> SecuritiesConversion.mmConversionQuotedCurrency;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "SttlmCcy";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "SettlementCurrency";
definition = "Currency in which the loan is being settled.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ActiveCurrencyCode.mmObject();
}
};
protected SpecialCondition1 specialConditions;
/**
* When the amount is credited outside of the country, special conditions
* are applicable.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.SpecialCondition1
* SpecialCondition1}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "SpclConds"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SpecialConditions"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "When the amount is credited outside of the country, special conditions are applicable."
*
*
*/
public static final MMMessageAssociationEnd mmSpecialConditions = new MMMessageAssociationEnd() {
{
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "SpclConds";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "SpecialConditions";
definition = "When the amount is credited outside of the country, special conditions are applicable.";
maxOccurs = 1;
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.SpecialCondition1.mmObject();
}
};
protected Exact1NumericText durationCode;
/**
* Loan duration in a coded form.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.Exact1NumericText
* Exact1NumericText}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "DrtnCd"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DurationCode"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Loan duration in a coded form."
*
*/
public static final MMMessageAttribute mmDurationCode = new MMMessageAttribute() {
{
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "DrtnCd";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "DurationCode";
definition = "Loan duration in a coded form.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Exact1NumericText.mmObject();
}
};
protected InterestRate2Choice interestRate;
/**
* Interest rate for the loan.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.choice.InterestRate2Choice
* InterestRate2Choice}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.PaymentTerms#mmPercentage
* PaymentTerms.mmPercentage}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "IntrstRate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InterestRate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Interest rate for the loan."
*
*/
public static final MMMessageAssociationEnd mmInterestRate = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> PaymentTerms.mmPercentage;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "IntrstRate";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "InterestRate";
definition = "Interest rate for the loan.";
maxOccurs = 1;
minOccurs = 1;
isComposite = true;
type_lazy = () -> InterestRate2Choice.mmObject();
}
};
protected List tranche;
/**
* One part or division of the loan, used to define the repayment.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.LoanContractTranche1
* LoanContractTranche1}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Asset#mmTranche
* Asset.mmTranche}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Trch"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Tranche"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "One part or division of the loan, used to define the repayment."
*
*/
public static final MMMessageAssociationEnd mmTranche = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> Asset.mmTranche;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Trch";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Tranche";
definition = "One part or division of the loan, used to define the repayment.";
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.LoanContractTranche1.mmObject();
}
};
protected PaymentSchedule1Choice paymentSchedule;
/**
* Schedule of the payments defined for the loan contract.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.choice.PaymentSchedule1Choice
* PaymentSchedule1Choice}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.PaymentObligation#mmPaymentTerms
* PaymentObligation.mmPaymentTerms}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "PmtSchdl"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "PaymentSchedule"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Schedule of the payments defined for the loan contract."
*
*/
public static final MMMessageAssociationEnd mmPaymentSchedule = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> PaymentObligation.mmPaymentTerms;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "PmtSchdl";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "PaymentSchedule";
definition = "Schedule of the payments defined for the loan contract.";
maxOccurs = 1;
minOccurs = 0;
isComposite = true;
type_lazy = () -> PaymentSchedule1Choice.mmObject();
}
};
protected InterestPaymentSchedule1Choice interestSchedule;
/**
* Schedule of the interest payments defined for the loan contract.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.choice.InterestPaymentSchedule1Choice
* InterestPaymentSchedule1Choice}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Loan#mmInterestPaymentsSchedule
* Loan.mmInterestPaymentsSchedule}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "IntrstSchdl"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InterestSchedule"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Schedule of the interest payments defined for the loan contract."
*
*/
public static final MMMessageAssociationEnd mmInterestSchedule = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> Loan.mmInterestPaymentsSchedule;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "IntrstSchdl";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "InterestSchedule";
definition = "Schedule of the interest payments defined for the loan contract.";
maxOccurs = 1;
minOccurs = 1;
isComposite = true;
type_lazy = () -> InterestPaymentSchedule1Choice.mmObject();
}
};
protected TrueFalseIndicator intraCompanyLoan;
/**
* Loan is an intra company loan.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.TrueFalseIndicator
* TrueFalseIndicator}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Loan#mmIntraCompanyLoanIndicator
* Loan.mmIntraCompanyLoanIndicator}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "IntraCpnyLn"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "IntraCompanyLoan"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Loan is an intra company loan."
*
*/
public static final MMMessageAttribute mmIntraCompanyLoan = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Loan.mmIntraCompanyLoanIndicator;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "IntraCpnyLn";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "IntraCompanyLoan";
definition = "Loan is an intra company loan.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> TrueFalseIndicator.mmObject();
}
};
protected ContractCollateral1 collateral;
/**
* Details of the collateral for the loan.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.ContractCollateral1
* ContractCollateral1}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.CollateralAgreement#mmCollateral
* CollateralAgreement.mmCollateral}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Coll"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Collateral"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Details of the collateral for the loan."
*
*/
public static final MMMessageAssociationEnd mmCollateral = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> CollateralAgreement.mmCollateral;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Coll";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Collateral";
definition = "Details of the collateral for the loan.";
maxOccurs = 1;
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.ContractCollateral1.mmObject();
}
};
protected List syndicatedLoan;
/**
* Loan offered by a group of lenders (called a syndicate) who work together
* to provide funds for a single borrower.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.SyndicatedLoan1
* SyndicatedLoan1}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessComponentTrace
* businessComponentTrace} =
* {@linkplain com.tools20022.repository.entity.Loan Loan}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "SndctdLn"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SyndicatedLoan"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Loan offered by a group of lenders (called a syndicate) who work together to provide funds for a single borrower. "
*
*
*/
public static final MMMessageAssociationEnd mmSyndicatedLoan = new MMMessageAssociationEnd() {
{
businessComponentTrace_lazy = () -> Loan.mmObject();
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "SndctdLn";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "SyndicatedLoan";
definition = "Loan offered by a group of lenders (called a syndicate) who work together to provide funds for a single borrower. ";
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.SyndicatedLoan1.mmObject();
}
};
protected List attachment;
/**
* Documents provided as attachments to the loan contract.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.msg.DocumentGeneralInformation3
* DocumentGeneralInformation3}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.RegisteredContract#mmAttachment
* RegisteredContract.mmAttachment}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.LoanContract1 LoanContract1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Attchmnt"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Attachment"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Documents provided as attachments to the loan contract."
*
*/
public static final MMMessageAssociationEnd mmAttachment = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> RegisteredContract.mmAttachment;
componentContext_lazy = () -> LoanContract1.mmObject();
isDerived = false;
xmlTag = "Attchmnt";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Attachment";
definition = "Documents provided as attachments to the loan contract.";
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.DocumentGeneralInformation3.mmObject();
}
};
final static public MMMessageComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMMessageComponent() {
{
messageElement_lazy = () -> Arrays.asList(LoanContract1.mmContractDocumentIdentification, LoanContract1.mmBuyer, LoanContract1.mmSeller, LoanContract1.mmAmount, LoanContract1.mmMaturityDate,
LoanContract1.mmProlongationFlag, LoanContract1.mmStartDate, LoanContract1.mmSettlementCurrency, LoanContract1.mmSpecialConditions, LoanContract1.mmDurationCode, LoanContract1.mmInterestRate,
LoanContract1.mmTranche, LoanContract1.mmPaymentSchedule, LoanContract1.mmInterestSchedule, LoanContract1.mmIntraCompanyLoan, LoanContract1.mmCollateral, LoanContract1.mmSyndicatedLoan, LoanContract1.mmAttachment);
trace_lazy = () -> Loan.mmObject();
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "LoanContract1";
definition = "Contract by which an amount of money in exchange for future repayment of the principal amount along with interest or other finance charges.";
}
});
return mmObject_lazy.get();
}
@XmlElement(name = "CtrctDocId", required = true)
public DocumentIdentification22 getContractDocumentIdentification() {
return contractDocumentIdentification;
}
public void setContractDocumentIdentification(com.tools20022.repository.msg.DocumentIdentification22 contractDocumentIdentification) {
this.contractDocumentIdentification = contractDocumentIdentification;
}
@XmlElement(name = "Buyr", required = true)
public List getBuyer() {
return buyer;
}
public void setBuyer(List buyer) {
this.buyer = buyer;
}
@XmlElement(name = "Sellr", required = true)
public List getSeller() {
return seller;
}
public void setSeller(List seller) {
this.seller = seller;
}
@XmlElement(name = "Amt", required = true)
public ActiveCurrencyAndAmount getAmount() {
return amount;
}
public void setAmount(ActiveCurrencyAndAmount amount) {
this.amount = amount;
}
@XmlElement(name = "MtrtyDt", required = true)
public ISODate getMaturityDate() {
return maturityDate;
}
public void setMaturityDate(ISODate maturityDate) {
this.maturityDate = maturityDate;
}
@XmlElement(name = "PrlngtnFlg", required = true)
public TrueFalseIndicator getProlongationFlag() {
return prolongationFlag;
}
public void setProlongationFlag(TrueFalseIndicator prolongationFlag) {
this.prolongationFlag = prolongationFlag;
}
@XmlElement(name = "StartDt", required = true)
public ISODate getStartDate() {
return startDate;
}
public void setStartDate(ISODate startDate) {
this.startDate = startDate;
}
@XmlElement(name = "SttlmCcy", required = true)
public ActiveCurrencyCode getSettlementCurrency() {
return settlementCurrency;
}
public void setSettlementCurrency(ActiveCurrencyCode settlementCurrency) {
this.settlementCurrency = settlementCurrency;
}
@XmlElement(name = "SpclConds")
public SpecialCondition1 getSpecialConditions() {
return specialConditions;
}
public void setSpecialConditions(com.tools20022.repository.msg.SpecialCondition1 specialConditions) {
this.specialConditions = specialConditions;
}
@XmlElement(name = "DrtnCd", required = true)
public Exact1NumericText getDurationCode() {
return durationCode;
}
public void setDurationCode(Exact1NumericText durationCode) {
this.durationCode = durationCode;
}
@XmlElement(name = "IntrstRate", required = true)
public InterestRate2Choice getInterestRate() {
return interestRate;
}
public void setInterestRate(InterestRate2Choice interestRate) {
this.interestRate = interestRate;
}
@XmlElement(name = "Trch")
public List getTranche() {
return tranche;
}
public void setTranche(List tranche) {
this.tranche = tranche;
}
@XmlElement(name = "PmtSchdl")
public PaymentSchedule1Choice getPaymentSchedule() {
return paymentSchedule;
}
public void setPaymentSchedule(PaymentSchedule1Choice paymentSchedule) {
this.paymentSchedule = paymentSchedule;
}
@XmlElement(name = "IntrstSchdl", required = true)
public InterestPaymentSchedule1Choice getInterestSchedule() {
return interestSchedule;
}
public void setInterestSchedule(InterestPaymentSchedule1Choice interestSchedule) {
this.interestSchedule = interestSchedule;
}
@XmlElement(name = "IntraCpnyLn", required = true)
public TrueFalseIndicator getIntraCompanyLoan() {
return intraCompanyLoan;
}
public void setIntraCompanyLoan(TrueFalseIndicator intraCompanyLoan) {
this.intraCompanyLoan = intraCompanyLoan;
}
@XmlElement(name = "Coll")
public ContractCollateral1 getCollateral() {
return collateral;
}
public void setCollateral(com.tools20022.repository.msg.ContractCollateral1 collateral) {
this.collateral = collateral;
}
@XmlElement(name = "SndctdLn")
public List getSyndicatedLoan() {
return syndicatedLoan;
}
public void setSyndicatedLoan(List syndicatedLoan) {
this.syndicatedLoan = syndicatedLoan;
}
@XmlElement(name = "Attchmnt")
public List getAttachment() {
return attachment;
}
public void setAttachment(List attachment) {
this.attachment = attachment;
}
}