All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.tools20022.repository.entity.DirectDebit Maven / Gradle / Ivy
/* 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.ISODate;
import com.tools20022.repository.datatype.Max35Text;
import com.tools20022.repository.entity.IndividualPayment;
import com.tools20022.repository.GeneratedRepository;
import com.tools20022.repository.msg.*;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
/**
* Payment, initiated by the creditor, to debit a debtor's account in favour of
* the creditor. A direct debit can be pre-authorised or not. In most countries,
* authorisation is in the form of a mandate between the debtor and creditor.
*
* Class diagram
*
*
*
* Constant fields:
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getSuperType
* superType} = {@linkplain com.tools20022.repository.entity.IndividualPayment
* IndividualPayment}
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getElement
* element} =
*
*
* {@linkplain com.tools20022.repository.entity.DirectDebit#mmRegistrationIdentification
* DirectDebit.mmRegistrationIdentification}
*
* {@linkplain com.tools20022.repository.entity.DirectDebit#mmDirectDebitMandate
* DirectDebit.mmDirectDebitMandate}
*
* {@linkplain com.tools20022.repository.entity.DirectDebit#mmPreNotificationIdentification
* DirectDebit.mmPreNotificationIdentification}
*
* {@linkplain com.tools20022.repository.entity.DirectDebit#mmPreNotificationDate
* DirectDebit.mmPreNotificationDate}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getAssociationDomain
* associationDomain} =
*
*
* {@linkplain com.tools20022.repository.entity.DirectDebitMandate#mmRelatedDirectDebit
* DirectDebitMandate.mmRelatedDirectDebit}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getDerivationElement
* derivationElement} =
*
*
* {@linkplain com.tools20022.repository.msg.CreditTransferTransaction9#mmDirectDebitTransactionInformation
* CreditTransferTransaction9.mmDirectDebitTransactionInformation}
*
* {@linkplain com.tools20022.repository.msg.PaymentInstruction21#mmDirectDebitTransactionInformation
* PaymentInstruction21.mmDirectDebitTransactionInformation}
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransactionInformation21#mmDirectDebitTransaction
* DirectDebitTransactionInformation21.mmDirectDebitTransaction}
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransactionInformation22#mmDirectDebitTransaction
* DirectDebitTransactionInformation22.mmDirectDebitTransaction}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getDerivationComponent
* derivationComponent} =
*
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransactionInformation15
* DirectDebitTransactionInformation15}
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransactionInformation21
* DirectDebitTransactionInformation21}
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransactionInformation22
* DirectDebitTransactionInformation22}
* {@linkplain com.tools20022.repository.msg.DirectDebitTransaction9
* DirectDebitTransaction9}
*
*
*
* {@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} =
* "DirectDebit"
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Payment, initiated by the creditor, to debit a debtor's account in favour of the creditor. A direct debit can be pre-authorised or not. In most countries, authorisation is in the form of a mandate between the debtor and creditor."
*
*
*/
public class DirectDebit extends IndividualPayment {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected Max35Text registrationIdentification;
/**
* Reference assigned to a creditor by its financial institution, or
* relevant authority, authorising the creditor to take part in a direct
* debit scheme.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max35Text
* Max35Text}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.DirectDebit DirectDebit}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "RegistrationIdentification"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Reference assigned to a creditor by its financial institution, or relevant authority, authorising the creditor to take part in a direct debit scheme."
*
*
*/
public static final MMBusinessAttribute mmRegistrationIdentification = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.DirectDebit.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "RegistrationIdentification";
definition = "Reference assigned to a creditor by its financial institution, or relevant authority, authorising the creditor to take part in a direct debit scheme.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max35Text.mmObject();
}
public Method getGetterMethod() {
try {
return DirectDebit.class.getMethod("getRegistrationIdentification", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected DirectDebitMandate directDebitMandate;
/**
* Set of elements providing information specific to the direct debit
* mandate.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.DirectDebitMandate#mmRelatedDirectDebit
* DirectDebitMandate.mmRelatedDirectDebit}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.entity.DirectDebitMandate
* DirectDebitMandate}
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation
* derivation} =
*
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransaction9#mmMandateRelatedInformation
* DirectDebitTransaction9.mmMandateRelatedInformation}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.DirectDebit DirectDebit}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DirectDebitMandate"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Set of elements providing information specific to the direct debit mandate."
*
*
*/
public static final MMBusinessAssociationEnd mmDirectDebitMandate = new MMBusinessAssociationEnd() {
{
derivation_lazy = () -> Arrays.asList(DirectDebitTransaction9.mmMandateRelatedInformation);
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.DirectDebit.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DirectDebitMandate";
definition = "Set of elements providing information specific to the direct debit mandate.";
maxOccurs = 1;
minOccurs = 1;
opposite_lazy = () -> com.tools20022.repository.entity.DirectDebitMandate.mmRelatedDirectDebit;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.DirectDebitMandate.mmObject();
}
};
protected Max35Text preNotificationIdentification;
/**
* Unique and unambiguous identification of the pre-notification which is
* sent separately from the direct debit instruction. Usage: the direct
* debit pre-notification is used to reconcile separately sent collection
* information with the direct debit transaction information.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max35Text
* Max35Text}
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation
* derivation} =
*
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransaction9#mmPreNotificationIdentification
* DirectDebitTransaction9.mmPreNotificationIdentification}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.DirectDebit DirectDebit}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "PreNotificationIdentification"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Unique and unambiguous identification of the pre-notification which is sent separately from the direct debit instruction.\nUsage: the direct debit pre-notification is used to reconcile separately sent collection information with the direct debit transaction information."
*
*
*/
public static final MMBusinessAttribute mmPreNotificationIdentification = new MMBusinessAttribute() {
{
derivation_lazy = () -> Arrays.asList(DirectDebitTransaction9.mmPreNotificationIdentification);
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.DirectDebit.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "PreNotificationIdentification";
definition = "Unique and unambiguous identification of the pre-notification which is sent separately from the direct debit instruction.\nUsage: the direct debit pre-notification is used to reconcile separately sent collection information with the direct debit transaction information.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max35Text.mmObject();
}
public Method getGetterMethod() {
try {
return DirectDebit.class.getMethod("getPreNotificationIdentification", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected ISODate preNotificationDate;
/**
* Date on which the creditor notifies the debtor about the amount and date
* on which the direct debit instruction will be presented to the debtor's
* agent.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.ISODate
* ISODate}
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation
* derivation} =
*
*
* {@linkplain com.tools20022.repository.msg.DirectDebitTransaction9#mmPreNotificationDate
* DirectDebitTransaction9.mmPreNotificationDate}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.DirectDebit DirectDebit}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "PreNotificationDate"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Date on which the creditor notifies the debtor about the amount and date on which the direct debit instruction will be presented to the debtor's agent."
*
*
*/
public static final MMBusinessAttribute mmPreNotificationDate = new MMBusinessAttribute() {
{
derivation_lazy = () -> Arrays.asList(DirectDebitTransaction9.mmPreNotificationDate);
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.DirectDebit.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "PreNotificationDate";
definition = "Date on which the creditor notifies the debtor about the amount and date on which the direct debit instruction will be presented to the debtor's agent.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ISODate.mmObject();
}
public Method getGetterMethod() {
try {
return DirectDebit.class.getMethod("getPreNotificationDate", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
static public MMBusinessComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMBusinessComponent() {
{
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DirectDebit";
definition = "Payment, initiated by the creditor, to debit a debtor's account in favour of the creditor. A direct debit can be pre-authorised or not. In most countries, authorisation is in the form of a mandate between the debtor and creditor.";
associationDomain_lazy = () -> Arrays.asList(com.tools20022.repository.entity.DirectDebitMandate.mmRelatedDirectDebit);
derivationElement_lazy = () -> Arrays.asList(CreditTransferTransaction9.mmDirectDebitTransactionInformation, PaymentInstruction21.mmDirectDebitTransactionInformation,
DirectDebitTransactionInformation21.mmDirectDebitTransaction, DirectDebitTransactionInformation22.mmDirectDebitTransaction);
superType_lazy = () -> IndividualPayment.mmObject();
element_lazy = () -> Arrays.asList(com.tools20022.repository.entity.DirectDebit.mmRegistrationIdentification, com.tools20022.repository.entity.DirectDebit.mmDirectDebitMandate,
com.tools20022.repository.entity.DirectDebit.mmPreNotificationIdentification, com.tools20022.repository.entity.DirectDebit.mmPreNotificationDate);
derivationComponent_lazy = () -> Arrays.asList(DirectDebitTransactionInformation15.mmObject(), DirectDebitTransactionInformation21.mmObject(), DirectDebitTransactionInformation22.mmObject(),
DirectDebitTransaction9.mmObject());
}
@Override
public Class getInstanceClass() {
return DirectDebit.class;
}
});
return mmObject_lazy.get();
}
public Max35Text getRegistrationIdentification() {
return registrationIdentification;
}
public void setRegistrationIdentification(Max35Text registrationIdentification) {
this.registrationIdentification = registrationIdentification;
}
public DirectDebitMandate getDirectDebitMandate() {
return directDebitMandate;
}
public void setDirectDebitMandate(com.tools20022.repository.entity.DirectDebitMandate directDebitMandate) {
this.directDebitMandate = directDebitMandate;
}
public Max35Text getPreNotificationIdentification() {
return preNotificationIdentification;
}
public void setPreNotificationIdentification(Max35Text preNotificationIdentification) {
this.preNotificationIdentification = preNotificationIdentification;
}
public ISODate getPreNotificationDate() {
return preNotificationDate;
}
public void setPreNotificationDate(ISODate preNotificationDate) {
this.preNotificationDate = preNotificationDate;
}
}