All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tools20022.repository.entity.CashStandingOrder Maven / Gradle / Ivy

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.entity;

import com.tools20022.metamodel.*;
import com.tools20022.repository.codeset.DebitCreditCode;
import com.tools20022.repository.datatype.CurrencyAndAmount;
import com.tools20022.repository.datatype.TrueFalseIndicator;
import com.tools20022.repository.entity.StandingOrder;
import com.tools20022.repository.GeneratedRepository;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;

/**
 * Instruction given by a party that has explicit authority to instruct a debit
 * on the account, ie, either the debit account owner or originating party, to a
 * first agent, to process cash transfers at specified intervals during an
 * implicit or explicit period of time. A standing order is given once and is
 * valid for an open or closed period of time.
 * 

* Class diagram *

* *

* Constant fields: *

    *
  • {@linkplain com.tools20022.metamodel.MMBusinessComponent#getSuperType * superType} = {@linkplain com.tools20022.repository.entity.StandingOrder * StandingOrder}
  • *
  • {@linkplain com.tools20022.metamodel.MMBusinessComponent#getElement * element} = *
      *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmZeroSweepIndicator * CashStandingOrder.mmZeroSweepIndicator}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmRelatedCashServices * CashStandingOrder.mmRelatedCashServices}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmCreditDebitIndicator * CashStandingOrder.mmCreditDebitIndicator}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmCreditTransfer * CashStandingOrder.mmCreditTransfer}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmFloorAmount * CashStandingOrder.mmFloorAmount}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashStandingOrder#mmCashAccount * CashStandingOrder.mmCashAccount}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessComponent#getAssociationDomain * associationDomain} = *
      *
    • * {@linkplain com.tools20022.repository.entity.CashAccount#mmCashStandingOrder * CashAccount.mmCashStandingOrder}
    • *
    • * {@linkplain com.tools20022.repository.entity.CashManagementService#mmStandingOrder * CashManagementService.mmStandingOrder}
    • *
    • * {@linkplain com.tools20022.repository.entity.CreditTransfer#mmRelatedStandingOrder * CreditTransfer.mmRelatedStandingOrder}
    • *
    *
  • *
  • * {@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} = * "CashStandingOrder"
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Instruction given by a party that has explicit authority to instruct a debit on the account, ie, either the debit account owner or originating party, to a first agent, to process cash transfers at specified intervals during an implicit or explicit period of time. A standing order is given once and is valid for an open or closed period of time." *
  • *
*/ public class CashStandingOrder extends StandingOrder { final static private AtomicReference mmObject_lazy = new AtomicReference<>(); protected TrueFalseIndicator zeroSweepIndicator; /** * Indicates whether the liquidity transfer standing order is defined as a * zero sweeping order. When true, the liquidity transfer standing order * will transfer all amount of money out of the account so the resulting * balance is zero. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType * simpleType} = * {@linkplain com.tools20022.repository.datatype.TrueFalseIndicator * TrueFalseIndicator}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "ZeroSweepIndicator"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Indicates whether the liquidity transfer standing order is defined as a zero sweeping order. When true, the liquidity transfer standing order will transfer all amount of money out of the account so the resulting balance is zero." *
  • *
*/ public static final MMBusinessAttribute mmZeroSweepIndicator = new MMBusinessAttribute() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "ZeroSweepIndicator"; definition = "Indicates whether the liquidity transfer standing order is defined as a zero sweeping order. When true, the liquidity transfer standing order will transfer all amount of money out of the account so the resulting balance is zero."; maxOccurs = 1; minOccurs = 1; simpleType_lazy = () -> TrueFalseIndicator.mmObject(); } public Method getGetterMethod() { try { return CashStandingOrder.class.getMethod("getZeroSweepIndicator", new Class[]{}); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } }; protected CashManagementService relatedCashServices; /** * Cash management services which provide standing order facilities. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.CashManagementService#mmStandingOrder * CashManagementService.mmStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = * {@linkplain com.tools20022.repository.entity.CashManagementService * CashManagementService}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "RelatedCashServices"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Cash management services which provide standing order facilities."
  • *
*/ public static final MMBusinessAssociationEnd mmRelatedCashServices = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "RelatedCashServices"; definition = "Cash management services which provide standing order facilities."; maxOccurs = 1; minOccurs = 0; opposite_lazy = () -> com.tools20022.repository.entity.CashManagementService.mmStandingOrder; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.CashManagementService.mmObject(); } }; protected DebitCreditCode creditDebitIndicator; /** * Specifies if the account is debited or credited by the standing order. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType * simpleType} = * {@linkplain com.tools20022.repository.codeset.DebitCreditCode * DebitCreditCode}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "CreditDebitIndicator"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Specifies if the account is debited or credited by the standing order."
  • *
*/ public static final MMBusinessAttribute mmCreditDebitIndicator = new MMBusinessAttribute() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "CreditDebitIndicator"; definition = "Specifies if the account is debited or credited by the standing order."; maxOccurs = 1; minOccurs = 1; simpleType_lazy = () -> DebitCreditCode.mmObject(); } public Method getGetterMethod() { try { return CashStandingOrder.class.getMethod("getCreditDebitIndicator", new Class[]{}); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } }; protected CreditTransfer creditTransfer; /** * Standing order causes a payment instruction at regular intervals, eg, as * specified by its frequency. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.CreditTransfer#mmRelatedStandingOrder * CreditTransfer.mmRelatedStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.CreditTransfer * CreditTransfer}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "CreditTransfer"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Standing order causes a payment instruction at regular intervals, eg, as specified by its frequency." *
  • *
*/ public static final MMBusinessAssociationEnd mmCreditTransfer = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "CreditTransfer"; definition = "Standing order causes a payment instruction at regular intervals, eg, as specified by its frequency."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.CreditTransfer.mmRelatedStandingOrder; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.CreditTransfer.mmObject(); } }; protected CurrencyAndAmount floorAmount; /** * Minimum amount of money that should remain on the debtor's account, for * cash management purposes. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType * simpleType} = * {@linkplain com.tools20022.repository.datatype.CurrencyAndAmount * CurrencyAndAmount}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "FloorAmount"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Minimum amount of money that should remain on the debtor's account, for cash management purposes." *
  • *
*/ public static final MMBusinessAttribute mmFloorAmount = new MMBusinessAttribute() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "FloorAmount"; definition = "Minimum amount of money that should remain on the debtor's account, for cash management purposes."; maxOccurs = 1; minOccurs = 1; simpleType_lazy = () -> CurrencyAndAmount.mmObject(); } public Method getGetterMethod() { try { return CashStandingOrder.class.getMethod("getFloorAmount", new Class[]{}); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } } }; protected CashAccount cashAccount; /** * Cash account for which a standing order applies. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.CashAccount#mmCashStandingOrder * CashAccount.mmCashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.CashAccount * CashAccount}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.CashStandingOrder * CashStandingOrder}
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "CashAccount"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = "Cash account for which a standing order applies."
  • *
*/ public static final MMBusinessAssociationEnd mmCashAccount = new MMBusinessAssociationEnd() { { isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.CashStandingOrder.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "CashAccount"; definition = "Cash account for which a standing order applies."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.CashAccount.mmCashStandingOrder; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.CashAccount.mmObject(); } }; static public MMBusinessComponent mmObject() { mmObject_lazy.compareAndSet(null, new MMBusinessComponent() { { dataDictionary_lazy = () -> GeneratedRepository.mmdataDict; registrationStatus = MMRegistrationStatus.REGISTERED; name = "CashStandingOrder"; definition = "Instruction given by a party that has explicit authority to instruct a debit on the account, ie, either the debit account owner or originating party, to a first agent, to process cash transfers at specified intervals during an implicit or explicit period of time. A standing order is given once and is valid for an open or closed period of time."; associationDomain_lazy = () -> Arrays.asList(com.tools20022.repository.entity.CashAccount.mmCashStandingOrder, com.tools20022.repository.entity.CashManagementService.mmStandingOrder, com.tools20022.repository.entity.CreditTransfer.mmRelatedStandingOrder); superType_lazy = () -> StandingOrder.mmObject(); element_lazy = () -> Arrays.asList(com.tools20022.repository.entity.CashStandingOrder.mmZeroSweepIndicator, com.tools20022.repository.entity.CashStandingOrder.mmRelatedCashServices, com.tools20022.repository.entity.CashStandingOrder.mmCreditDebitIndicator, com.tools20022.repository.entity.CashStandingOrder.mmCreditTransfer, com.tools20022.repository.entity.CashStandingOrder.mmFloorAmount, com.tools20022.repository.entity.CashStandingOrder.mmCashAccount); } @Override public Class getInstanceClass() { return CashStandingOrder.class; } }); return mmObject_lazy.get(); } public TrueFalseIndicator getZeroSweepIndicator() { return zeroSweepIndicator; } public void setZeroSweepIndicator(TrueFalseIndicator zeroSweepIndicator) { this.zeroSweepIndicator = zeroSweepIndicator; } public CashManagementService getRelatedCashServices() { return relatedCashServices; } public void setRelatedCashServices(com.tools20022.repository.entity.CashManagementService relatedCashServices) { this.relatedCashServices = relatedCashServices; } public DebitCreditCode getCreditDebitIndicator() { return creditDebitIndicator; } public void setCreditDebitIndicator(DebitCreditCode creditDebitIndicator) { this.creditDebitIndicator = creditDebitIndicator; } public CreditTransfer getCreditTransfer() { return creditTransfer; } public void setCreditTransfer(com.tools20022.repository.entity.CreditTransfer creditTransfer) { this.creditTransfer = creditTransfer; } public CurrencyAndAmount getFloorAmount() { return floorAmount; } public void setFloorAmount(CurrencyAndAmount floorAmount) { this.floorAmount = floorAmount; } public CashAccount getCashAccount() { return cashAccount; } public void setCashAccount(com.tools20022.repository.entity.CashAccount cashAccount) { this.cashAccount = cashAccount; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy