com.tools20022.repository.msg.MandateAdjustment1 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.Frequency37Choice;
import com.tools20022.repository.datatype.ActiveCurrencyAndAmount;
import com.tools20022.repository.datatype.PercentageRate;
import com.tools20022.repository.datatype.TrueFalseIndicator;
import com.tools20022.repository.entity.DirectDebitMandate;
import com.tools20022.repository.entity.Mandate;
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 details for the adjustment of the mandate.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageElementContainer#getMessageElement
* messageElement} =
*
* -
* {@linkplain com.tools20022.repository.msg.MandateAdjustment1#mmDateAdjustmentRuleIndicator
* MandateAdjustment1.mmDateAdjustmentRuleIndicator}
* - {@linkplain com.tools20022.repository.msg.MandateAdjustment1#mmCategory
* MandateAdjustment1.mmCategory}
* - {@linkplain com.tools20022.repository.msg.MandateAdjustment1#mmAmount
* MandateAdjustment1.mmAmount}
* - {@linkplain com.tools20022.repository.msg.MandateAdjustment1#mmRate
* MandateAdjustment1.mmRate}
*
*
* - {@linkplain com.tools20022.metamodel.MMMessageComponentType#getTrace
* trace} = {@linkplain com.tools20022.repository.entity.DirectDebitMandate
* DirectDebitMandate}
* -
* {@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} =
* "MandateAdjustment1"
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Specifies the details for the adjustment of the mandate."
*
*/
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "MandateAdjustment1", propOrder = {"dateAdjustmentRuleIndicator", "category", "amount", "rate"})
public class MandateAdjustment1 {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected TrueFalseIndicator dateAdjustmentRuleIndicator;
/**
* Specifies whether an adjustment is to be applied on pre-agreed collection
* date 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.MandateAdjustment1
* MandateAdjustment1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "DtAdjstmntRuleInd"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DateAdjustmentRuleIndicator"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Specifies whether an adjustment is to be applied on pre-agreed collection date or not."
*
*
*/
public static final MMMessageAttribute mmDateAdjustmentRuleIndicator = new MMMessageAttribute() {
{
componentContext_lazy = () -> MandateAdjustment1.mmObject();
isDerived = false;
xmlTag = "DtAdjstmntRuleInd";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "DateAdjustmentRuleIndicator";
definition = "Specifies whether an adjustment is to be applied on pre-agreed collection date or not.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> TrueFalseIndicator.mmObject();
}
};
protected Frequency37Choice category;
/**
* Defines the category of adjustment.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.choice.Frequency37Choice
* Frequency37Choice}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.DirectDebitMandate#mmFrequency
* DirectDebitMandate.mmFrequency}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.MandateAdjustment1
* MandateAdjustment1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Ctgy"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Category"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Defines the category of adjustment."
*
*/
public static final MMMessageAssociationEnd mmCategory = new MMMessageAssociationEnd() {
{
businessElementTrace_lazy = () -> DirectDebitMandate.mmFrequency;
componentContext_lazy = () -> MandateAdjustment1.mmObject();
isDerived = false;
xmlTag = "Ctgy";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Category";
definition = "Defines the category of adjustment.";
maxOccurs = 1;
minOccurs = 0;
isComposite = true;
type_lazy = () -> Frequency37Choice.mmObject();
}
};
protected ActiveCurrencyAndAmount amount;
/**
* Pre-agreed amount to increase or decrease the mandate amount as justified
* per information in the category.
*
* 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.DirectDebitMandate#mmCollectionAmount
* DirectDebitMandate.mmCollectionAmount}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.MandateAdjustment1
* MandateAdjustment1}
* - {@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} =
* "Pre-agreed amount to increase or decrease the mandate amount as justified per information in the category."
*
*
*/
public static final MMMessageAttribute mmAmount = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> DirectDebitMandate.mmCollectionAmount;
componentContext_lazy = () -> MandateAdjustment1.mmObject();
isDerived = false;
xmlTag = "Amt";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Amount";
definition = "Pre-agreed amount to increase or decrease the mandate amount as justified per information in the category.";
maxOccurs = 1;
minOccurs = 0;
simpleType_lazy = () -> ActiveCurrencyAndAmount.mmObject();
}
};
protected PercentageRate rate;
/**
* Pre-agreed increase or decrease rate that will be applied to the
* collection amount.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.PercentageRate
* PercentageRate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Mandate#mmRate
* Mandate.mmRate}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.MandateAdjustment1
* MandateAdjustment1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Rate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Rate"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Pre-agreed increase or decrease rate that will be applied to the collection amount."
*
*
*/
public static final MMMessageAttribute mmRate = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Mandate.mmRate;
componentContext_lazy = () -> MandateAdjustment1.mmObject();
isDerived = false;
xmlTag = "Rate";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Rate";
definition = "Pre-agreed increase or decrease rate that will be applied to the collection amount.";
maxOccurs = 1;
minOccurs = 0;
simpleType_lazy = () -> PercentageRate.mmObject();
}
};
final static public MMMessageComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMMessageComponent() {
{
messageElement_lazy = () -> Arrays.asList(MandateAdjustment1.mmDateAdjustmentRuleIndicator, MandateAdjustment1.mmCategory, MandateAdjustment1.mmAmount, MandateAdjustment1.mmRate);
trace_lazy = () -> DirectDebitMandate.mmObject();
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "MandateAdjustment1";
definition = "Specifies the details for the adjustment of the mandate.";
}
});
return mmObject_lazy.get();
}
@XmlElement(name = "DtAdjstmntRuleInd", required = true)
public TrueFalseIndicator getDateAdjustmentRuleIndicator() {
return dateAdjustmentRuleIndicator;
}
public void setDateAdjustmentRuleIndicator(TrueFalseIndicator dateAdjustmentRuleIndicator) {
this.dateAdjustmentRuleIndicator = dateAdjustmentRuleIndicator;
}
@XmlElement(name = "Ctgy")
public Frequency37Choice getCategory() {
return category;
}
public void setCategory(Frequency37Choice category) {
this.category = category;
}
@XmlElement(name = "Amt")
public ActiveCurrencyAndAmount getAmount() {
return amount;
}
public void setAmount(ActiveCurrencyAndAmount amount) {
this.amount = amount;
}
@XmlElement(name = "Rate")
public PercentageRate getRate() {
return rate;
}
public void setRate(PercentageRate rate) {
this.rate = rate;
}
}