com.tools20022.repository.choice.Purpose2Choice 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.choice;
import com.tools20022.metamodel.MMChoiceComponent;
import com.tools20022.metamodel.MMMessageAttribute;
import com.tools20022.metamodel.MMRegistrationStatus;
import com.tools20022.repository.codeset.ExternalPurpose1Code;
import com.tools20022.repository.datatype.Max35Text;
import com.tools20022.repository.entity.PaymentObligation;
import com.tools20022.repository.GeneratedRepository;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* Specifies the underlying reason for the payment transaction. Usage: Purpose
* is used by the end-customers, that is initiating party, (ultimate) debtor,
* (ultimate) creditor to provide information concerning the nature of the
* payment. Purpose is a content element, which is not used for processing by
* any of the agents involved in the payment chain.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageElementContainer#getMessageElement
* messageElement} =
*
* - {@linkplain com.tools20022.repository.choice.Purpose2Choice#mmCode
* Purpose2Choice.mmCode}
* -
* {@linkplain com.tools20022.repository.choice.Purpose2Choice#mmProprietary
* Purpose2Choice.mmProprietary}
*
*
* - {@linkplain com.tools20022.metamodel.MMMessageComponentType#getTrace
* trace} = {@linkplain com.tools20022.repository.entity.PaymentObligation
* PaymentObligation}
* -
* {@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} =
* "Purpose2Choice"
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Specifies the underlying reason for the payment transaction.\nUsage: Purpose is used by the end-customers, that is initiating party, (ultimate) debtor, (ultimate) creditor to provide information concerning the nature of the payment. Purpose is a content element, which is not used for processing by any of the agents involved in the payment chain."
*
*
*/
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "Purpose2Choice", propOrder = {"code", "proprietary"})
public class Purpose2Choice {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected ExternalPurpose1Code code;
/**
* Underlying reason for the payment transaction, as published in an
* external purpose code list.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.ExternalPurpose1Code
* ExternalPurpose1Code}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.PaymentObligation#mmPurpose
* PaymentObligation.mmPurpose}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.choice.Purpose2Choice
* Purpose2Choice}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Cd"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Code"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Underlying reason for the payment transaction, as published in an external purpose code list."
*
*
*/
public static final MMMessageAttribute mmCode = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> PaymentObligation.mmPurpose;
componentContext_lazy = () -> Purpose2Choice.mmObject();
isDerived = false;
xmlTag = "Cd";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Code";
definition = "Underlying reason for the payment transaction, as published in an external purpose code list.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ExternalPurpose1Code.mmObject();
}
};
protected Max35Text proprietary;
/**
* Purpose, in a proprietary form.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max35Text
* Max35Text}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.PaymentObligation#mmPurpose
* PaymentObligation.mmPurpose}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.choice.Purpose2Choice
* Purpose2Choice}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Prtry"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Proprietary"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Purpose, in a proprietary form."
*
*/
public static final MMMessageAttribute mmProprietary = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> PaymentObligation.mmPurpose;
componentContext_lazy = () -> Purpose2Choice.mmObject();
isDerived = false;
xmlTag = "Prtry";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Proprietary";
definition = "Purpose, in a proprietary form.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max35Text.mmObject();
}
};
final static public MMChoiceComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMChoiceComponent() {
{
messageElement_lazy = () -> Arrays.asList(Purpose2Choice.mmCode, Purpose2Choice.mmProprietary);
trace_lazy = () -> PaymentObligation.mmObject();
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "Purpose2Choice";
definition = "Specifies the underlying reason for the payment transaction.\nUsage: Purpose is used by the end-customers, that is initiating party, (ultimate) debtor, (ultimate) creditor to provide information concerning the nature of the payment. Purpose is a content element, which is not used for processing by any of the agents involved in the payment chain.";
}
});
return mmObject_lazy.get();
}
@XmlElement(name = "Cd", required = true)
public ExternalPurpose1Code getCode() {
return code;
}
public void setCode(ExternalPurpose1Code code) {
this.code = code;
}
@XmlElement(name = "Prtry", required = true)
public Max35Text getProprietary() {
return proprietary;
}
public void setProprietary(Max35Text proprietary) {
this.proprietary = proprietary;
}
}