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

com.tools20022.repository.entity.BankOperation 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.MMAggregation;
import com.tools20022.metamodel.MMBusinessAssociationEnd;
import com.tools20022.metamodel.MMBusinessComponent;
import com.tools20022.metamodel.MMRegistrationStatus;
import com.tools20022.repository.entity.CashAccountService;
import com.tools20022.repository.GeneratedRepository;
import com.tools20022.repository.msg.*;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import java.util.List;

/**
 * Operation on a bank account. It may be limited in time, amount or type of
 * operation.
 * 

* Class diagram *

* *

* Constant fields: *

    *
  • {@linkplain com.tools20022.metamodel.MMBusinessComponent#getSuperType * superType} = {@linkplain com.tools20022.repository.entity.CashAccountService * CashAccountService}
  • *
  • {@linkplain com.tools20022.metamodel.MMBusinessComponent#getElement * element} = *
      *
    • * {@linkplain com.tools20022.repository.entity.BankOperation#mmOperationThreshold * BankOperation.mmOperationThreshold}
    • *
    • * {@linkplain com.tools20022.repository.entity.BankOperation#mmOperationType * BankOperation.mmOperationType}
    • *
    • * {@linkplain com.tools20022.repository.entity.BankOperation#mmApplicablePeriod * BankOperation.mmApplicablePeriod}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessComponent#getAssociationDomain * associationDomain} = *
      *
    • * {@linkplain com.tools20022.repository.entity.DateTimePeriod#mmBankOperation * DateTimePeriod.mmBankOperation}
    • *
    • * {@linkplain com.tools20022.repository.entity.OperationThreshold#mmBankOperation * OperationThreshold.mmBankOperation}
    • *
    • * {@linkplain com.tools20022.repository.entity.BankTransaction#mmBankOperation * BankTransaction.mmBankOperation}
    • *
    *
  • *
  • * {@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} = * "BankOperation"
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Operation on a bank account. It may be limited in time, amount or type of operation." *
  • *
*/ public class BankOperation extends CashAccountService { final static private AtomicReference mmObject_lazy = new AtomicReference<>(); protected OperationThreshold operationThreshold; /** * Threshold related to a bank account operation. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.OperationThreshold#mmBankOperation * OperationThreshold.mmBankOperation}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.OperationThreshold * OperationThreshold}
  • *
  • {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation * derivation} = *
      *
    • * {@linkplain com.tools20022.repository.msg.PartyAndAuthorisation1#mmAuthorisation * PartyAndAuthorisation1.mmAuthorisation}
    • *
    • * {@linkplain com.tools20022.repository.msg.PartyAndAuthorisation3#mmAuthorisation * PartyAndAuthorisation3.mmAuthorisation}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.BankOperation BankOperation} *
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "OperationThreshold"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = "Threshold related to a bank account operation."
  • *
*/ public static final MMBusinessAssociationEnd mmOperationThreshold = new MMBusinessAssociationEnd() { { derivation_lazy = () -> Arrays.asList(PartyAndAuthorisation1.mmAuthorisation, PartyAndAuthorisation3.mmAuthorisation); isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.BankOperation.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "OperationThreshold"; definition = "Threshold related to a bank account operation."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.OperationThreshold.mmBankOperation; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.OperationThreshold.mmObject(); } }; protected BankTransaction operationType; /** * Specifies the type of the operation related to a bank account. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.BankTransaction#mmBankOperation * BankTransaction.mmBankOperation}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.BankTransaction * BankTransaction}
  • *
  • {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation * derivation} = *
      *
    • * {@linkplain com.tools20022.repository.msg.OperationMandate2#mmBankOperation * OperationMandate2.mmBankOperation}
    • *
    • * {@linkplain com.tools20022.repository.msg.OperationMandate3#mmBankOperation * OperationMandate3.mmBankOperation}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.BankOperation BankOperation} *
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "OperationType"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Specifies the type of the operation related to a bank account."
  • *
*/ public static final MMBusinessAssociationEnd mmOperationType = new MMBusinessAssociationEnd() { { derivation_lazy = () -> Arrays.asList(OperationMandate2.mmBankOperation, OperationMandate3.mmBankOperation); isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.BankOperation.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "OperationType"; definition = "Specifies the type of the operation related to a bank account."; maxOccurs = 1; minOccurs = 1; opposite_lazy = () -> com.tools20022.repository.entity.BankTransaction.mmBankOperation; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.BankTransaction.mmObject(); } }; protected List applicablePeriod; /** * Specifies the period, for instance a number of days, for which the bank * operations are permitted. *

* Constant fields: *

    *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite * opposite} = * {@linkplain com.tools20022.repository.entity.DateTimePeriod#mmBankOperation * DateTimePeriod.mmBankOperation}
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation * aggregation} = com.tools20022.metamodel.MMAggregation.NONE
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType * type} = {@linkplain com.tools20022.repository.entity.DateTimePeriod * DateTimePeriod}
  • *
  • {@linkplain com.tools20022.metamodel.MMBusinessElement#getDerivation * derivation} = *
      *
    • * {@linkplain com.tools20022.repository.msg.MaximumAmountByPeriod1#mmNumberOfDays * MaximumAmountByPeriod1.mmNumberOfDays}
    • *
    *
  • *
  • * {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext * elementContext} = * {@linkplain com.tools20022.repository.entity.BankOperation BankOperation} *
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus * registrationStatus} = * com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
  • *
  • {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName * name} = "ApplicablePeriod"
  • *
  • * {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition * definition} = * "Specifies the period, for instance a number of days, for which the bank operations are permitted. " *
  • *
*/ public static final MMBusinessAssociationEnd mmApplicablePeriod = new MMBusinessAssociationEnd() { { derivation_lazy = () -> Arrays.asList(MaximumAmountByPeriod1.mmNumberOfDays); isDerived = false; elementContext_lazy = () -> com.tools20022.repository.entity.BankOperation.mmObject(); registrationStatus = MMRegistrationStatus.REGISTERED; name = "ApplicablePeriod"; definition = "Specifies the period, for instance a number of days, for which the bank operations are permitted. "; minOccurs = 0; opposite_lazy = () -> com.tools20022.repository.entity.DateTimePeriod.mmBankOperation; aggregation = MMAggregation.NONE; type_lazy = () -> com.tools20022.repository.entity.DateTimePeriod.mmObject(); } }; static public MMBusinessComponent mmObject() { mmObject_lazy.compareAndSet(null, new MMBusinessComponent() { { dataDictionary_lazy = () -> GeneratedRepository.mmdataDict; registrationStatus = MMRegistrationStatus.REGISTERED; name = "BankOperation"; definition = "Operation on a bank account. It may be limited in time, amount or type of operation."; associationDomain_lazy = () -> Arrays.asList(com.tools20022.repository.entity.DateTimePeriod.mmBankOperation, com.tools20022.repository.entity.OperationThreshold.mmBankOperation, com.tools20022.repository.entity.BankTransaction.mmBankOperation); superType_lazy = () -> CashAccountService.mmObject(); element_lazy = () -> Arrays.asList(com.tools20022.repository.entity.BankOperation.mmOperationThreshold, com.tools20022.repository.entity.BankOperation.mmOperationType, com.tools20022.repository.entity.BankOperation.mmApplicablePeriod); } @Override public Class getInstanceClass() { return BankOperation.class; } }); return mmObject_lazy.get(); } public OperationThreshold getOperationThreshold() { return operationThreshold; } public void setOperationThreshold(com.tools20022.repository.entity.OperationThreshold operationThreshold) { this.operationThreshold = operationThreshold; } public BankTransaction getOperationType() { return operationType; } public void setOperationType(com.tools20022.repository.entity.BankTransaction operationType) { this.operationType = operationType; } public List getApplicablePeriod() { return applicablePeriod; } public void setApplicablePeriod(List applicablePeriod) { this.applicablePeriod = applicablePeriod; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy