com.tools20022.repository.area.remt.RemittanceAdviceV03 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
/* 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.area.remt;
import com.tools20022.metamodel.MMMessageBuildingBlock;
import com.tools20022.metamodel.MMMessageDefinition;
import com.tools20022.metamodel.MMMessageDefinitionIdentifier;
import com.tools20022.metamodel.MMRegistrationStatus;
import com.tools20022.repository.area.PaymentsRemittanceAdviceLatestVersion;
import com.tools20022.repository.msg.GroupHeader62;
import com.tools20022.repository.msg.RemittanceInformation13;
import com.tools20022.repository.msg.SupplementaryData1;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import java.util.List;
import javax.xml.bind.annotation.*;
/**
* The RemittanceAdvice message allows the originator to provide remittance
* details that can be associated with a payment.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageDefinition#getMessageBuildingBlock
* messageBuildingBlock} =
*
* -
* {@linkplain com.tools20022.repository.area.remt.RemittanceAdviceV03#mmGroupHeader
* RemittanceAdviceV03.mmGroupHeader}
* -
* {@linkplain com.tools20022.repository.area.remt.RemittanceAdviceV03#mmRemittanceInformation
* RemittanceAdviceV03.mmRemittanceInformation}
* -
* {@linkplain com.tools20022.repository.area.remt.RemittanceAdviceV03#mmSupplementaryData
* RemittanceAdviceV03.mmSupplementaryData}
*
*
* - {@linkplain com.tools20022.metamodel.MMMessageDefinition#getRootElement
* rootElement} = "Document"
* - {@linkplain com.tools20022.metamodel.MMMessageDefinition#getXmlTag
* xmlTag} = "RmtAdvc"
* - {@linkplain com.tools20022.metamodel.MMMessageDefinition#getBusinessArea
* businessArea} =
* {@linkplain com.tools20022.repository.area.PaymentsRemittanceAdviceLatestVersion
* PaymentsRemittanceAdviceLatestVersion}
* -
* {@linkplain com.tools20022.metamodel.MMMessageDefinition#getMessageDefinitionIdentifier
* messageDefinitionIdentifier} = {@code remt.001.001.03}
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName name} =
* "RemittanceAdviceV03"
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "The RemittanceAdvice message allows the originator to provide remittance details that can be associated with a payment."
*
*
*/
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "RemittanceAdviceV03", propOrder = {"groupHeader", "remittanceInformation", "supplementaryData"})
public class RemittanceAdviceV03 {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected GroupHeader62 groupHeader;
/**
* Set of characteristics shared by all remittance information included in
* the message.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageBuildingBlock#getComplexType
* complexType} = {@linkplain com.tools20022.repository.msg.GroupHeader62
* GroupHeader62}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "GrpHdr"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "GroupHeader"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Set of characteristics shared by all remittance information included in the message."
*
*
*/
public static final MMMessageBuildingBlock mmGroupHeader = new MMMessageBuildingBlock() {
{
xmlTag = "GrpHdr";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "GroupHeader";
definition = "Set of characteristics shared by all remittance information included in the message.";
maxOccurs = 1;
minOccurs = 1;
complexType_lazy = () -> GroupHeader62.mmObject();
}
public Method getGetterMethod() {
try {
return RemittanceAdviceV03.class.getMethod("getGroupHeader", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected List remittanceInformation;
/**
* Provides information to enable the matching of an entry with the items
* that the associated payment is intended to settle, such as commercial
* invoices in an accounts' receivable system, tax obligations, or
* garnishment orders.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageBuildingBlock#getComplexType
* complexType} =
* {@linkplain com.tools20022.repository.msg.RemittanceInformation13
* RemittanceInformation13}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "RmtInf"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "RemittanceInformation"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Provides information to enable the matching of an entry with the items that the associated payment is intended to settle, such as commercial invoices in an accounts' receivable system, tax obligations, or garnishment orders."
*
*
*/
public static final MMMessageBuildingBlock mmRemittanceInformation = new MMMessageBuildingBlock() {
{
xmlTag = "RmtInf";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "RemittanceInformation";
definition = "Provides information to enable the matching of an entry with the items that the associated payment is intended to settle, such as commercial invoices in an accounts' receivable system, tax obligations, or garnishment orders.";
minOccurs = 1;
complexType_lazy = () -> RemittanceInformation13.mmObject();
}
public Method getGetterMethod() {
try {
return RemittanceAdviceV03.class.getMethod("getRemittanceInformation", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected List supplementaryData;
/**
* Additional information that cannot be captured in the structured elements
* and/or any other specific block.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageBuildingBlock#getComplexType
* complexType} =
* {@linkplain com.tools20022.repository.msg.SupplementaryData1
* SupplementaryData1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "SplmtryData"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SupplementaryData"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Additional information that cannot be captured in the structured elements and/or any other specific block."
*
*
*/
public static final MMMessageBuildingBlock mmSupplementaryData = new MMMessageBuildingBlock() {
{
xmlTag = "SplmtryData";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "SupplementaryData";
definition = "Additional information that cannot be captured in the structured elements and/or any other specific block.";
minOccurs = 0;
complexType_lazy = () -> SupplementaryData1.mmObject();
}
public Method getGetterMethod() {
try {
return RemittanceAdviceV03.class.getMethod("getSupplementaryData", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
final static public MMMessageDefinition mmObject() {
mmObject_lazy.compareAndSet(null, new MMMessageDefinition() {
{
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "RemittanceAdviceV03";
definition = "The RemittanceAdvice message allows the originator to provide remittance details that can be associated with a payment.";
rootElement = "Document";
xmlTag = "RmtAdvc";
businessArea_lazy = () -> PaymentsRemittanceAdviceLatestVersion.mmObject();
messageBuildingBlock_lazy = () -> Arrays.asList(com.tools20022.repository.area.remt.RemittanceAdviceV03.mmGroupHeader, com.tools20022.repository.area.remt.RemittanceAdviceV03.mmRemittanceInformation,
com.tools20022.repository.area.remt.RemittanceAdviceV03.mmSupplementaryData);
messageDefinitionIdentifier_lazy = () -> new MMMessageDefinitionIdentifier() {
{
businessArea = "remt";
messageFunctionality = "001";
version = "03";
flavour = "001";
}
};
}
@Override
public Class> getInstanceClass() {
return RemittanceAdviceV03.class;
}
});
return mmObject_lazy.get();
}
@XmlElement(name = "GrpHdr", required = true)
public GroupHeader62 getGroupHeader() {
return groupHeader;
}
public void setGroupHeader(GroupHeader62 groupHeader) {
this.groupHeader = groupHeader;
}
@XmlElement(name = "RmtInf", required = true)
public List getRemittanceInformation() {
return remittanceInformation;
}
public void setRemittanceInformation(List remittanceInformation) {
this.remittanceInformation = remittanceInformation;
}
@XmlElement(name = "SplmtryData")
public List getSupplementaryData() {
return supplementaryData;
}
public void setSupplementaryData(List supplementaryData) {
this.supplementaryData = supplementaryData;
}
@XmlRootElement(namespace = "urn:iso:std:iso:20022:tech:xsd:remt.001.03.03")
static public class Document {
@XmlElement(name = "RmtAdvc", required = true)
public RemittanceAdviceV03 messageBody;
}
}