com.tools20022.repository.msg.BillingPrice1 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.codeset.ActiveOrHistoricCurrencyCode;
import com.tools20022.repository.codeset.BillingChargeMethod1Code;
import com.tools20022.repository.datatype.Max20Text;
import com.tools20022.repository.entity.CashAccountService;
import com.tools20022.repository.entity.Price;
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 billing price of a service.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageElementContainer#getMessageElement
* messageElement} =
*
* - {@linkplain com.tools20022.repository.msg.BillingPrice1#mmCurrency
* BillingPrice1.mmCurrency}
* - {@linkplain com.tools20022.repository.msg.BillingPrice1#mmUnitPrice
* BillingPrice1.mmUnitPrice}
* - {@linkplain com.tools20022.repository.msg.BillingPrice1#mmMethod
* BillingPrice1.mmMethod}
* - {@linkplain com.tools20022.repository.msg.BillingPrice1#mmRule
* BillingPrice1.mmRule}
*
*
* - {@linkplain com.tools20022.metamodel.MMMessageComponentType#getTrace
* trace} = {@linkplain com.tools20022.repository.entity.Price Price}
* -
* {@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} =
* "BillingPrice1"
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Specifies the billing price of a service."
*
*/
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "BillingPrice1", propOrder = {"currency", "unitPrice", "method", "rule"})
public class BillingPrice1 {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected ActiveOrHistoricCurrencyCode currency;
/**
* Currency code in which the unit price and original charge price are
* expressed.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.ActiveOrHistoricCurrencyCode
* ActiveOrHistoricCurrencyCode}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.Price#mmCurrency
* Price.mmCurrency}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.BillingPrice1 BillingPrice1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Ccy"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Currency"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Currency code in which the unit price and original charge price are expressed."
*
*
*/
public static final MMMessageAttribute mmCurrency = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> Price.mmCurrency;
componentContext_lazy = () -> BillingPrice1.mmObject();
isDerived = false;
xmlTag = "Ccy";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Currency";
definition = "Currency code in which the unit price and original charge price are expressed.";
maxOccurs = 1;
minOccurs = 0;
simpleType_lazy = () -> ActiveOrHistoricCurrencyCode.mmObject();
}
};
protected AmountAndDirection34 unitPrice;
/**
* Price per item or unit used to calculate the charge expressed in the
* pricing currency.
*
* Constant fields:
*
* - {@linkplain com.tools20022.metamodel.MMMessageAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.msg.AmountAndDirection34
* AmountAndDirection34}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessComponentTrace
* businessComponentTrace} =
* {@linkplain com.tools20022.repository.entity.Price Price}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.BillingPrice1 BillingPrice1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "UnitPric"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "UnitPrice"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Price per item or unit used to calculate the charge expressed in the pricing currency."
*
*
*/
public static final MMMessageAssociationEnd mmUnitPrice = new MMMessageAssociationEnd() {
{
businessComponentTrace_lazy = () -> Price.mmObject();
componentContext_lazy = () -> BillingPrice1.mmObject();
isDerived = false;
xmlTag = "UnitPric";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "UnitPrice";
definition = "Price per item or unit used to calculate the charge expressed in the pricing currency.";
maxOccurs = 1;
minOccurs = 0;
isComposite = true;
type_lazy = () -> com.tools20022.repository.msg.AmountAndDirection34.mmObject();
}
};
protected BillingChargeMethod1Code method;
/**
* Identifies how the charge was calculated.
*
* Usage: The absence of this code assumes that the charge is calculated as
* the product of (volume x unit price).
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.BillingChargeMethod1Code
* BillingChargeMethod1Code}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getBusinessElementTrace
* businessElementTrace} =
* {@linkplain com.tools20022.repository.entity.CashAccountService#mmBillingChargeMethod
* CashAccountService.mmBillingChargeMethod}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.BillingPrice1 BillingPrice1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Mtd"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Method"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Identifies how the charge was calculated. \n\nUsage: The absence of this code assumes that the charge is calculated as the product of (volume x unit price)."
*
*
*/
public static final MMMessageAttribute mmMethod = new MMMessageAttribute() {
{
businessElementTrace_lazy = () -> CashAccountService.mmBillingChargeMethod;
componentContext_lazy = () -> BillingPrice1.mmObject();
isDerived = false;
xmlTag = "Mtd";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Method";
definition = "Identifies how the charge was calculated. \n\nUsage: The absence of this code assumes that the charge is calculated as the product of (volume x unit price).";
maxOccurs = 1;
minOccurs = 0;
simpleType_lazy = () -> BillingChargeMethod1Code.mmObject();
}
};
protected Max20Text rule;
/**
* Indicates that the charge calculation is based on a particular rule. The
* rule name is carried here and is defined by the trading partners.
*
* Constant fields:
*
* -
* {@linkplain com.tools20022.metamodel.MMMessageAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max20Text
* Max20Text}
* -
* {@linkplain com.tools20022.metamodel.MMMessageElement#getComponentContext
* componentContext} =
* {@linkplain com.tools20022.repository.msg.BillingPrice1 BillingPrice1}
* - {@linkplain com.tools20022.metamodel.MMMessageConstruct#getXmlTag
* xmlTag} = "Rule"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.PROVISIONALLY_REGISTERED
* - {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Rule"
* -
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicates that the charge calculation is based on a particular rule. The rule name is carried here and is defined by the trading partners."
*
*
*/
public static final MMMessageAttribute mmRule = new MMMessageAttribute() {
{
componentContext_lazy = () -> BillingPrice1.mmObject();
isDerived = false;
xmlTag = "Rule";
registrationStatus = MMRegistrationStatus.PROVISIONALLY_REGISTERED;
name = "Rule";
definition = "Indicates that the charge calculation is based on a particular rule. The rule name is carried here and is defined by the trading partners.";
maxOccurs = 1;
minOccurs = 0;
simpleType_lazy = () -> Max20Text.mmObject();
}
};
final static public MMMessageComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMMessageComponent() {
{
messageElement_lazy = () -> Arrays.asList(BillingPrice1.mmCurrency, BillingPrice1.mmUnitPrice, BillingPrice1.mmMethod, BillingPrice1.mmRule);
trace_lazy = () -> Price.mmObject();
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "BillingPrice1";
definition = "Specifies the billing price of a service.";
}
});
return mmObject_lazy.get();
}
@XmlElement(name = "Ccy")
public ActiveOrHistoricCurrencyCode getCurrency() {
return currency;
}
public void setCurrency(ActiveOrHistoricCurrencyCode currency) {
this.currency = currency;
}
@XmlElement(name = "UnitPric")
public AmountAndDirection34 getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(com.tools20022.repository.msg.AmountAndDirection34 unitPrice) {
this.unitPrice = unitPrice;
}
@XmlElement(name = "Mtd")
public BillingChargeMethod1Code getMethod() {
return method;
}
public void setMethod(BillingChargeMethod1Code method) {
this.method = method;
}
@XmlElement(name = "Rule")
public Max20Text getRule() {
return rule;
}
public void setRule(Max20Text rule) {
this.rule = rule;
}
}