Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.tools20022.repository.entity.InvestmentFundClass Maven / Gradle / Ivy
/* 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.*;
import com.tools20022.repository.datatype.*;
import com.tools20022.repository.entity.Security;
import com.tools20022.repository.GeneratedRepository;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import java.util.List;
/**
* Security that is a sub-set of an investment fund, and is governed by the same
* investment fund policy, for example, a dividend option or valuation currency.
*
* Class diagram
*
*
*
* Constant fields:
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getSuperType
* superType} = {@linkplain com.tools20022.repository.entity.Security Security}
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getElement
* element} =
*
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmClassType
* InvestmentFundClass.mmClassType}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmDistributionPolicy
* InvestmentFundClass.mmDistributionPolicy}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmDividendPolicy
* InvestmentFundClass.mmDividendPolicy}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmDualFundIndicator
* InvestmentFundClass.mmDualFundIndicator}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmRequestedNAVCurrency
* InvestmentFundClass.mmRequestedNAVCurrency}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmTradingCurrency
* InvestmentFundClass.mmTradingCurrency}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmInvestmentFund
* InvestmentFundClass.mmInvestmentFund}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmPhysicalBearerSecurities
* InvestmentFundClass.mmPhysicalBearerSecurities}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmDematerialisedBearerSecurities
* InvestmentFundClass.mmDematerialisedBearerSecurities}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmPhysicalRegisteredSecurities
* InvestmentFundClass.mmPhysicalRegisteredSecurities}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmDematerialisedRegisteredSecurities
* InvestmentFundClass.mmDematerialisedRegisteredSecurities}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmProcessingCharacteristics
* InvestmentFundClass.mmProcessingCharacteristics}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmProductGroup
* InvestmentFundClass.mmProductGroup}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmInvestmentAccount
* InvestmentFundClass.mmInvestmentAccount}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmNetAssetValueCalculation
* InvestmentFundClass.mmNetAssetValueCalculation}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmInvestmentFundTransaction
* InvestmentFundClass.mmInvestmentFundTransaction}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmSeriesIssueIdentificationDate
* InvestmentFundClass.mmSeriesIssueIdentificationDate}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmSeriesName
* InvestmentFundClass.mmSeriesName}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmNewIssueIndicator
* InvestmentFundClass.mmNewIssueIndicator}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmEqualisation
* InvestmentFundClass.mmEqualisation}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmTopUpAmount
* InvestmentFundClass.mmTopUpAmount}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmHoldBackAmount
* InvestmentFundClass.mmHoldBackAmount}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmHoldBackReleaseDate
* InvestmentFundClass.mmHoldBackReleaseDate}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmLotDescription
* InvestmentFundClass.mmLotDescription}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmFundClassification
* InvestmentFundClass.mmFundClassification}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmUnderlyingAssetType
* InvestmentFundClass.mmUnderlyingAssetType}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmInvestorType
* InvestmentFundClass.mmInvestorType}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmReinvestment
* InvestmentFundClass.mmReinvestment}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass#mmOutstandingUnits
* InvestmentFundClass.mmOutstandingUnits}
*
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessComponent#getAssociationDomain
* associationDomain} =
*
*
* {@linkplain com.tools20022.repository.entity.GenericIdentification#mmIdentificationForInvestmentFundClass
* GenericIdentification.mmIdentificationForInvestmentFundClass}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFund#mmInvestmentFundClass
* InvestmentFund.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics#mmFundClass
* InvestmentFundClassProcessingCharacteristics.mmFundClass}
*
* {@linkplain com.tools20022.repository.entity.NetAssetValueCalculation#mmRelatedFund
* NetAssetValueCalculation.mmRelatedFund}
*
* {@linkplain com.tools20022.repository.entity.InvestmentAccount#mmInvestmentFundClass
* InvestmentAccount.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.repository.entity.InvestmentFundTransaction#mmInvestmentFundClass
* InvestmentFundTransaction.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.repository.entity.Equalisation#mmRelatedInvestmentFundTransaction
* Equalisation.mmRelatedInvestmentFundTransaction}
*
* {@linkplain com.tools20022.repository.entity.Reinvestment#mmInvestmentFundClass
* Reinvestment.mmInvestmentFundClass}
*
*
*
* {@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} =
* "InvestmentFundClass"
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Security that is a sub-set of an investment fund, and is governed by the same investment fund policy, for example, a dividend option or valuation currency."
*
*
*/
public class InvestmentFundClass extends Security {
final static private AtomicReference mmObject_lazy = new AtomicReference<>();
protected Max35Text classType;
/**
* Features of units offered by a fund. For example, a unit may have a
* specific load structure, eg, front end or back end, an income policy, eg,
* pay out or accumulate, or a trailer policy, eg, with or without. Fund
* classes are typically denoted by a single character, eg, 'Class A',
* 'Class 2'.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max35Text
* Max35Text}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "ClassType"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Features of units offered by a fund. For example, a unit may have a specific load structure, eg, front end or back end, an income policy, eg, pay out or accumulate, or a trailer policy, eg, with or without. Fund classes are typically denoted by a single character, eg, 'Class A', 'Class 2'."
*
*
*/
public static final MMBusinessAttribute mmClassType = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "ClassType";
definition = "Features of units offered by a fund. For example, a unit may have a specific load structure, eg, front end or back end, an income policy, eg, pay out or accumulate, or a trailer policy, eg, with or without. Fund classes are typically denoted by a single character, eg, 'Class A', 'Class 2'.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max35Text.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getClassType", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected DistributionPolicyCode distributionPolicy;
/**
* Income policy relating to a class type, ie, if income is paid out or
* retained in the fund.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.DistributionPolicyCode
* DistributionPolicyCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DistributionPolicy"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Income policy relating to a class type, ie, if income is paid out or retained in the fund."
*
*
*/
public static final MMBusinessAttribute mmDistributionPolicy = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DistributionPolicy";
definition = "Income policy relating to a class type, ie, if income is paid out or retained in the fund.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> DistributionPolicyCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getDistributionPolicy", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected DividendPolicyCode dividendPolicy;
/**
* Dividend policy of the fund, eg, cash, units.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.DividendPolicyCode
* DividendPolicyCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DividendPolicy"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Dividend policy of the fund, eg, cash, units."
*
*/
public static final MMBusinessAttribute mmDividendPolicy = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DividendPolicy";
definition = "Dividend policy of the fund, eg, cash, units.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> DividendPolicyCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getDividendPolicy", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected YesNoIndicator dualFundIndicator;
/**
* Indicates whether the fund has two prices.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DualFundIndicator"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Indicates whether the fund has two prices."
*
*/
public static final MMBusinessAttribute mmDualFundIndicator = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DualFundIndicator";
definition = "Indicates whether the fund has two prices.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getDualFundIndicator", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected CurrencyCode requestedNAVCurrency;
/**
* Currency to be used for pricing the fund. This currency must be among the
* set of currencies in which the price may be expressed, as stated in the
* prospectus.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.codeset.CurrencyCode
* CurrencyCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "RequestedNAVCurrency"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Currency to be used for pricing the fund. This currency must be among the set of currencies in which the price may be expressed, as stated in the prospectus."
*
*
*/
public static final MMBusinessAttribute mmRequestedNAVCurrency = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "RequestedNAVCurrency";
definition = "Currency to be used for pricing the fund. This currency must be among the set of currencies in which the price may be expressed, as stated in the prospectus.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> CurrencyCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getRequestedNAVCurrency", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected CurrencyCode tradingCurrency;
/**
* Currency of the investment fund class.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.codeset.CurrencyCode
* CurrencyCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "TradingCurrency"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Currency of the investment fund class."
*
*/
public static final MMBusinessAttribute mmTradingCurrency = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "TradingCurrency";
definition = "Currency of the investment fund class.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> CurrencyCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getTradingCurrency", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected InvestmentFund investmentFund;
/**
* Investment fund which is related to the investment fund class.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.InvestmentFund#mmInvestmentFundClass
* InvestmentFund.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.entity.InvestmentFund
* InvestmentFund}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InvestmentFund"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Investment fund which is related to the investment fund class."
*
*/
public static final MMBusinessAssociationEnd mmInvestmentFund = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "InvestmentFund";
definition = "Investment fund which is related to the investment fund class.";
maxOccurs = 1;
minOccurs = 1;
opposite_lazy = () -> com.tools20022.repository.entity.InvestmentFund.mmInvestmentFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.InvestmentFund.mmObject();
}
};
protected YesNoIndicator physicalBearerSecurities;
/**
* Indicates whether or not it is possible to hold bearer units/shares in
* this class in certified form
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "PhysicalBearerSecurities"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicates whether or not it is possible to hold bearer units/shares in this class in certified form"
*
*
*/
public static final MMBusinessAttribute mmPhysicalBearerSecurities = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "PhysicalBearerSecurities";
definition = "Indicates whether or not it is possible to hold bearer units/shares in this class in certified form";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getPhysicalBearerSecurities", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected YesNoIndicator dematerialisedBearerSecurities;
/**
* Indicate whether or not it is possible to hold bearer units/shares in
* paperless form
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DematerialisedBearerSecurities"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicate whether or not it is possible to hold bearer units/shares in paperless form"
*
*
*/
public static final MMBusinessAttribute mmDematerialisedBearerSecurities = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DematerialisedBearerSecurities";
definition = "Indicate whether or not it is possible to hold bearer units/shares in paperless form";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getDematerialisedBearerSecurities", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected YesNoIndicator physicalRegisteredSecurities;
/**
* Indicate whether or not it is possible to hold registered units/shares in
* this class in paperless form
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "PhysicalRegisteredSecurities"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicate whether or not it is possible to hold registered units/shares in this class in paperless form"
*
*
*/
public static final MMBusinessAttribute mmPhysicalRegisteredSecurities = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "PhysicalRegisteredSecurities";
definition = "Indicate whether or not it is possible to hold registered units/shares in this class in paperless form";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getPhysicalRegisteredSecurities", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected YesNoIndicator dematerialisedRegisteredSecurities;
/**
* Indicate whether or not it is possible to hold registered units/shares in
* this class in paperless form
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "DematerialisedRegisteredSecurities"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicate whether or not it is possible to hold registered units/shares in this class in paperless form"
*
*
*/
public static final MMBusinessAttribute mmDematerialisedRegisteredSecurities = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "DematerialisedRegisteredSecurities";
definition = "Indicate whether or not it is possible to hold registered units/shares in this class in paperless form";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getDematerialisedRegisteredSecurities", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected List processingCharacteristics;
/**
* Processing characteristics linked to the investment fund class, ie, not
* to the market.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics#mmFundClass
* InvestmentFundClassProcessingCharacteristics.mmFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics
* InvestmentFundClassProcessingCharacteristics}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "ProcessingCharacteristics"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Processing characteristics linked to the investment fund class, ie, not to the market."
*
*
*/
public static final MMBusinessAssociationEnd mmProcessingCharacteristics = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "ProcessingCharacteristics";
definition = "Processing characteristics linked to the investment fund class, ie, not to the market.";
minOccurs = 1;
opposite_lazy = () -> com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics.mmFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics.mmObject();
}
};
protected Max140Text productGroup;
/**
* Company specific description of a group of funds.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max140Text
* Max140Text}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "ProductGroup"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Company specific description of a group of funds."
*
*/
public static final MMBusinessAttribute mmProductGroup = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "ProductGroup";
definition = "Company specific description of a group of funds.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max140Text.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getProductGroup", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected List investmentAccount;
/**
* Account which holds investment fund classes.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.InvestmentAccount#mmInvestmentFundClass
* InvestmentAccount.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.entity.InvestmentAccount
* InvestmentAccount}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InvestmentAccount"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Account which holds investment fund classes."
*
*/
public static final MMBusinessAssociationEnd mmInvestmentAccount = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "InvestmentAccount";
definition = "Account which holds investment fund classes.";
minOccurs = 0;
opposite_lazy = () -> com.tools20022.repository.entity.InvestmentAccount.mmInvestmentFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.InvestmentAccount.mmObject();
}
};
protected NetAssetValueCalculation netAssetValueCalculation;
/**
* Calculation of the value of the fund.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.NetAssetValueCalculation#mmRelatedFund
* NetAssetValueCalculation.mmRelatedFund}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.entity.NetAssetValueCalculation
* NetAssetValueCalculation}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "NetAssetValueCalculation"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Calculation of the value of the fund."
*
*/
public static final MMBusinessAssociationEnd mmNetAssetValueCalculation = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "NetAssetValueCalculation";
definition = "Calculation of the value of the fund.";
maxOccurs = 1;
minOccurs = 0;
opposite_lazy = () -> com.tools20022.repository.entity.NetAssetValueCalculation.mmRelatedFund;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.NetAssetValueCalculation.mmObject();
}
};
protected List investmentFundTransaction;
/**
* Transaction which is related to the fund class.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundTransaction#mmInvestmentFundClass
* InvestmentFundTransaction.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundTransaction
* InvestmentFundTransaction}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InvestmentFundTransaction"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Transaction which is related to the fund class."
*
*/
public static final MMBusinessAssociationEnd mmInvestmentFundTransaction = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "InvestmentFundTransaction";
definition = "Transaction which is related to the fund class.";
minOccurs = 0;
opposite_lazy = () -> com.tools20022.repository.entity.InvestmentFundTransaction.mmInvestmentFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.InvestmentFundTransaction.mmObject();
}
};
protected ISODate seriesIssueIdentificationDate;
/**
* Date that identifies the issue of a fund series. Typically applicable to
* a redemption or order confirmation, but may be specified in the
* subscription, if known.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.ISODate
* ISODate}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SeriesIssueIdentificationDate"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Date that identifies the issue of a fund series. Typically applicable to a redemption or order confirmation, but may be specified in the subscription, if known."
*
*
*/
public static final MMBusinessAttribute mmSeriesIssueIdentificationDate = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "SeriesIssueIdentificationDate";
definition = "Date that identifies the issue of a fund series. Typically applicable to a redemption or order confirmation, but may be specified in the subscription, if known.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ISODate.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getSeriesIssueIdentificationDate", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected Max35Text seriesName;
/**
* Identifies the name of a fund series. Typically applicable to a
* redemption or order confirmation, but may be specified in the
* subscription, if known.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max35Text
* Max35Text}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "SeriesName"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Identifies the name of a fund series. Typically applicable to a redemption or order confirmation, but may be specified in the subscription, if known."
*
*
*/
public static final MMBusinessAttribute mmSeriesName = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "SeriesName";
definition = "Identifies the name of a fund series. Typically applicable to a redemption or order confirmation, but may be specified in the subscription, if known.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max35Text.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getSeriesName", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected YesNoIndicator newIssueIndicator;
/**
* Indicates that the financial instrument and/or series included in the
* message is a new issue.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.YesNoIndicator
* YesNoIndicator}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "NewIssueIndicator"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Indicates that the financial instrument and/or series included in the message is a new issue."
*
*
*/
public static final MMBusinessAttribute mmNewIssueIndicator = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "NewIssueIndicator";
definition = "Indicates that the financial instrument and/or series included in the message is a new issue.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> YesNoIndicator.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getNewIssueIndicator", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected Equalisation equalisation;
/**
* Part of an investor's subscription amount that is held by the fund in
* order to pay incentive / performance fees at the end of the fiscal year.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.Equalisation#mmRelatedInvestmentFundTransaction
* Equalisation.mmRelatedInvestmentFundTransaction}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.entity.Equalisation
* Equalisation}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Equalisation"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Part of an investor's subscription amount that is held by the fund in order to pay incentive / performance fees at the end of the fiscal year."
*
*
*/
public static final MMBusinessAssociationEnd mmEqualisation = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "Equalisation";
definition = "Part of an investor's subscription amount that is held by the fund in order to pay incentive / performance fees at the end of the fiscal year.";
maxOccurs = 1;
minOccurs = 0;
opposite_lazy = () -> com.tools20022.repository.entity.Equalisation.mmRelatedInvestmentFundTransaction;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.Equalisation.mmObject();
}
};
protected CurrencyAndAmount topUpAmount;
/**
* Additional amount of money (top-up amount) required to meet the minimum
* subscription amount.
*
* 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.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "TopUpAmount"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Additional amount of money (top-up amount) required to meet the minimum subscription amount."
*
*
*/
public static final MMBusinessAttribute mmTopUpAmount = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "TopUpAmount";
definition = "Additional amount of money (top-up amount) required to meet the minimum subscription amount.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> CurrencyAndAmount.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getTopUpAmount", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected CurrencyAndAmount holdBackAmount;
/**
* Value of the redemption amount subject to hold back.
*
* 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.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "HoldBackAmount"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Value of the redemption amount subject to hold back."
*
*/
public static final MMBusinessAttribute mmHoldBackAmount = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "HoldBackAmount";
definition = "Value of the redemption amount subject to hold back.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> CurrencyAndAmount.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getHoldBackAmount", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected ISODate holdBackReleaseDate;
/**
* Date on which the hold back amount is to be released.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.ISODate
* ISODate}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "HoldBackReleaseDate"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Date on which the hold back amount is to be released."
*
*/
public static final MMBusinessAttribute mmHoldBackReleaseDate = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "HoldBackReleaseDate";
definition = "Date on which the hold back amount is to be released.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> ISODate.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getHoldBackReleaseDate", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected Max350Text lotDescription;
/**
* Description of the lot.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} = {@linkplain com.tools20022.repository.datatype.Max350Text
* Max350Text}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "LotDescription"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Description of the lot."
*
*/
public static final MMBusinessAttribute mmLotDescription = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "LotDescription";
definition = "Description of the lot.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> Max350Text.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getLotDescription", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected GenericIdentification fundClassification;
/**
* Method of classifying a fund.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.GenericIdentification#mmIdentificationForInvestmentFundClass
* GenericIdentification.mmIdentificationForInvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} =
* {@linkplain com.tools20022.repository.entity.GenericIdentification
* GenericIdentification}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "FundClassification"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Method of classifying a fund."
*
*/
public static final MMBusinessAssociationEnd mmFundClassification = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "FundClassification";
definition = "Method of classifying a fund.";
maxOccurs = 1;
minOccurs = 1;
opposite_lazy = () -> com.tools20022.repository.entity.GenericIdentification.mmIdentificationForInvestmentFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.GenericIdentification.mmObject();
}
};
protected FinancialInstrumentProductTypeCode underlyingAssetType;
/**
* Specifies the type of assets in which the fund invests.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.FinancialInstrumentProductTypeCode
* FinancialInstrumentProductTypeCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "UnderlyingAssetType"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Specifies the type of assets in which the fund invests."
*
*/
public static final MMBusinessAttribute mmUnderlyingAssetType = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "UnderlyingAssetType";
definition = "Specifies the type of assets in which the fund invests.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> FinancialInstrumentProductTypeCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getUnderlyingAssetType", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected InvestorTypeCode investorType;
/**
* Type of investor that can invest in the fund class.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.codeset.InvestorTypeCode
* InvestorTypeCode}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "InvestorType"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Type of investor that can invest in the fund class."
*
*/
public static final MMBusinessAttribute mmInvestorType = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "InvestorType";
definition = "Type of investor that can invest in the fund class.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> InvestorTypeCode.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getInvestorType", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
protected Reinvestment reinvestment;
/**
* Reinvestment information which involves this investment fund class.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getOpposite
* opposite} =
* {@linkplain com.tools20022.repository.entity.Reinvestment#mmInvestmentFundClass
* Reinvestment.mmInvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getAggregation
* aggregation} = com.tools20022.metamodel.MMAggregation.NONE
*
* {@linkplain com.tools20022.metamodel.MMBusinessAssociationEnd#getType
* type} = {@linkplain com.tools20022.repository.entity.Reinvestment
* Reinvestment}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "Reinvestment"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} =
* "Reinvestment information which involves this investment fund class."
*
*/
public static final MMBusinessAssociationEnd mmReinvestment = new MMBusinessAssociationEnd() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "Reinvestment";
definition = "Reinvestment information which involves this investment fund class.";
maxOccurs = 1;
minOccurs = 1;
opposite_lazy = () -> com.tools20022.repository.entity.Reinvestment.mmInvestmentFundClass;
aggregation = MMAggregation.NONE;
type_lazy = () -> com.tools20022.repository.entity.Reinvestment.mmObject();
}
};
protected DecimalNumber outstandingUnits;
/**
* Investment fund class currently held by shareholders.
*
* Constant fields:
*
*
* {@linkplain com.tools20022.metamodel.MMBusinessAttribute#getSimpleType
* simpleType} =
* {@linkplain com.tools20022.repository.datatype.DecimalNumber
* DecimalNumber}
*
* {@linkplain com.tools20022.metamodel.MMBusinessElement#getElementContext
* elementContext} =
* {@linkplain com.tools20022.repository.entity.InvestmentFundClass
* InvestmentFundClass}
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getRegistrationStatus
* registrationStatus} =
* com.tools20022.metamodel.MMRegistrationStatus.REGISTERED
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getName
* name} = "OutstandingUnits"
*
* {@linkplain com.tools20022.metamodel.MMRepositoryConcept#getDefinition
* definition} = "Investment fund class currently held by shareholders."
*
*/
public static final MMBusinessAttribute mmOutstandingUnits = new MMBusinessAttribute() {
{
isDerived = false;
elementContext_lazy = () -> com.tools20022.repository.entity.InvestmentFundClass.mmObject();
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "OutstandingUnits";
definition = "Investment fund class currently held by shareholders.";
maxOccurs = 1;
minOccurs = 1;
simpleType_lazy = () -> DecimalNumber.mmObject();
}
public Method getGetterMethod() {
try {
return InvestmentFundClass.class.getMethod("getOutstandingUnits", new Class[]{});
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
};
static public MMBusinessComponent mmObject() {
mmObject_lazy.compareAndSet(null, new MMBusinessComponent() {
{
dataDictionary_lazy = () -> GeneratedRepository.mmdataDict;
registrationStatus = MMRegistrationStatus.REGISTERED;
name = "InvestmentFundClass";
definition = "Security that is a sub-set of an investment fund, and is governed by the same investment fund policy, for example, a dividend option or valuation currency.";
associationDomain_lazy = () -> Arrays.asList(com.tools20022.repository.entity.GenericIdentification.mmIdentificationForInvestmentFundClass, com.tools20022.repository.entity.InvestmentFund.mmInvestmentFundClass,
com.tools20022.repository.entity.InvestmentFundClassProcessingCharacteristics.mmFundClass, com.tools20022.repository.entity.NetAssetValueCalculation.mmRelatedFund,
com.tools20022.repository.entity.InvestmentAccount.mmInvestmentFundClass, com.tools20022.repository.entity.InvestmentFundTransaction.mmInvestmentFundClass,
com.tools20022.repository.entity.Equalisation.mmRelatedInvestmentFundTransaction, com.tools20022.repository.entity.Reinvestment.mmInvestmentFundClass);
superType_lazy = () -> Security.mmObject();
element_lazy = () -> Arrays.asList(com.tools20022.repository.entity.InvestmentFundClass.mmClassType, com.tools20022.repository.entity.InvestmentFundClass.mmDistributionPolicy,
com.tools20022.repository.entity.InvestmentFundClass.mmDividendPolicy, com.tools20022.repository.entity.InvestmentFundClass.mmDualFundIndicator,
com.tools20022.repository.entity.InvestmentFundClass.mmRequestedNAVCurrency, com.tools20022.repository.entity.InvestmentFundClass.mmTradingCurrency,
com.tools20022.repository.entity.InvestmentFundClass.mmInvestmentFund, com.tools20022.repository.entity.InvestmentFundClass.mmPhysicalBearerSecurities,
com.tools20022.repository.entity.InvestmentFundClass.mmDematerialisedBearerSecurities, com.tools20022.repository.entity.InvestmentFundClass.mmPhysicalRegisteredSecurities,
com.tools20022.repository.entity.InvestmentFundClass.mmDematerialisedRegisteredSecurities, com.tools20022.repository.entity.InvestmentFundClass.mmProcessingCharacteristics,
com.tools20022.repository.entity.InvestmentFundClass.mmProductGroup, com.tools20022.repository.entity.InvestmentFundClass.mmInvestmentAccount,
com.tools20022.repository.entity.InvestmentFundClass.mmNetAssetValueCalculation, com.tools20022.repository.entity.InvestmentFundClass.mmInvestmentFundTransaction,
com.tools20022.repository.entity.InvestmentFundClass.mmSeriesIssueIdentificationDate, com.tools20022.repository.entity.InvestmentFundClass.mmSeriesName,
com.tools20022.repository.entity.InvestmentFundClass.mmNewIssueIndicator, com.tools20022.repository.entity.InvestmentFundClass.mmEqualisation, com.tools20022.repository.entity.InvestmentFundClass.mmTopUpAmount,
com.tools20022.repository.entity.InvestmentFundClass.mmHoldBackAmount, com.tools20022.repository.entity.InvestmentFundClass.mmHoldBackReleaseDate,
com.tools20022.repository.entity.InvestmentFundClass.mmLotDescription, com.tools20022.repository.entity.InvestmentFundClass.mmFundClassification,
com.tools20022.repository.entity.InvestmentFundClass.mmUnderlyingAssetType, com.tools20022.repository.entity.InvestmentFundClass.mmInvestorType, com.tools20022.repository.entity.InvestmentFundClass.mmReinvestment,
com.tools20022.repository.entity.InvestmentFundClass.mmOutstandingUnits);
}
@Override
public Class getInstanceClass() {
return InvestmentFundClass.class;
}
});
return mmObject_lazy.get();
}
public Max35Text getClassType() {
return classType;
}
public void setClassType(Max35Text classType) {
this.classType = classType;
}
public DistributionPolicyCode getDistributionPolicy() {
return distributionPolicy;
}
public void setDistributionPolicy(DistributionPolicyCode distributionPolicy) {
this.distributionPolicy = distributionPolicy;
}
public DividendPolicyCode getDividendPolicy() {
return dividendPolicy;
}
public void setDividendPolicy(DividendPolicyCode dividendPolicy) {
this.dividendPolicy = dividendPolicy;
}
public YesNoIndicator getDualFundIndicator() {
return dualFundIndicator;
}
public void setDualFundIndicator(YesNoIndicator dualFundIndicator) {
this.dualFundIndicator = dualFundIndicator;
}
public CurrencyCode getRequestedNAVCurrency() {
return requestedNAVCurrency;
}
public void setRequestedNAVCurrency(CurrencyCode requestedNAVCurrency) {
this.requestedNAVCurrency = requestedNAVCurrency;
}
public CurrencyCode getTradingCurrency() {
return tradingCurrency;
}
public void setTradingCurrency(CurrencyCode tradingCurrency) {
this.tradingCurrency = tradingCurrency;
}
public InvestmentFund getInvestmentFund() {
return investmentFund;
}
public void setInvestmentFund(com.tools20022.repository.entity.InvestmentFund investmentFund) {
this.investmentFund = investmentFund;
}
public YesNoIndicator getPhysicalBearerSecurities() {
return physicalBearerSecurities;
}
public void setPhysicalBearerSecurities(YesNoIndicator physicalBearerSecurities) {
this.physicalBearerSecurities = physicalBearerSecurities;
}
public YesNoIndicator getDematerialisedBearerSecurities() {
return dematerialisedBearerSecurities;
}
public void setDematerialisedBearerSecurities(YesNoIndicator dematerialisedBearerSecurities) {
this.dematerialisedBearerSecurities = dematerialisedBearerSecurities;
}
public YesNoIndicator getPhysicalRegisteredSecurities() {
return physicalRegisteredSecurities;
}
public void setPhysicalRegisteredSecurities(YesNoIndicator physicalRegisteredSecurities) {
this.physicalRegisteredSecurities = physicalRegisteredSecurities;
}
public YesNoIndicator getDematerialisedRegisteredSecurities() {
return dematerialisedRegisteredSecurities;
}
public void setDematerialisedRegisteredSecurities(YesNoIndicator dematerialisedRegisteredSecurities) {
this.dematerialisedRegisteredSecurities = dematerialisedRegisteredSecurities;
}
public List getProcessingCharacteristics() {
return processingCharacteristics;
}
public void setProcessingCharacteristics(List processingCharacteristics) {
this.processingCharacteristics = processingCharacteristics;
}
public Max140Text getProductGroup() {
return productGroup;
}
public void setProductGroup(Max140Text productGroup) {
this.productGroup = productGroup;
}
public List getInvestmentAccount() {
return investmentAccount;
}
public void setInvestmentAccount(List investmentAccount) {
this.investmentAccount = investmentAccount;
}
public NetAssetValueCalculation getNetAssetValueCalculation() {
return netAssetValueCalculation;
}
public void setNetAssetValueCalculation(com.tools20022.repository.entity.NetAssetValueCalculation netAssetValueCalculation) {
this.netAssetValueCalculation = netAssetValueCalculation;
}
public List getInvestmentFundTransaction() {
return investmentFundTransaction;
}
public void setInvestmentFundTransaction(List investmentFundTransaction) {
this.investmentFundTransaction = investmentFundTransaction;
}
public ISODate getSeriesIssueIdentificationDate() {
return seriesIssueIdentificationDate;
}
public void setSeriesIssueIdentificationDate(ISODate seriesIssueIdentificationDate) {
this.seriesIssueIdentificationDate = seriesIssueIdentificationDate;
}
public Max35Text getSeriesName() {
return seriesName;
}
public void setSeriesName(Max35Text seriesName) {
this.seriesName = seriesName;
}
public YesNoIndicator getNewIssueIndicator() {
return newIssueIndicator;
}
public void setNewIssueIndicator(YesNoIndicator newIssueIndicator) {
this.newIssueIndicator = newIssueIndicator;
}
public Equalisation getEqualisation() {
return equalisation;
}
public void setEqualisation(com.tools20022.repository.entity.Equalisation equalisation) {
this.equalisation = equalisation;
}
public CurrencyAndAmount getTopUpAmount() {
return topUpAmount;
}
public void setTopUpAmount(CurrencyAndAmount topUpAmount) {
this.topUpAmount = topUpAmount;
}
public CurrencyAndAmount getHoldBackAmount() {
return holdBackAmount;
}
public void setHoldBackAmount(CurrencyAndAmount holdBackAmount) {
this.holdBackAmount = holdBackAmount;
}
public ISODate getHoldBackReleaseDate() {
return holdBackReleaseDate;
}
public void setHoldBackReleaseDate(ISODate holdBackReleaseDate) {
this.holdBackReleaseDate = holdBackReleaseDate;
}
public Max350Text getLotDescription() {
return lotDescription;
}
public void setLotDescription(Max350Text lotDescription) {
this.lotDescription = lotDescription;
}
public GenericIdentification getFundClassification() {
return fundClassification;
}
public void setFundClassification(com.tools20022.repository.entity.GenericIdentification fundClassification) {
this.fundClassification = fundClassification;
}
public FinancialInstrumentProductTypeCode getUnderlyingAssetType() {
return underlyingAssetType;
}
public void setUnderlyingAssetType(FinancialInstrumentProductTypeCode underlyingAssetType) {
this.underlyingAssetType = underlyingAssetType;
}
public InvestorTypeCode getInvestorType() {
return investorType;
}
public void setInvestorType(InvestorTypeCode investorType) {
this.investorType = investorType;
}
public Reinvestment getReinvestment() {
return reinvestment;
}
public void setReinvestment(com.tools20022.repository.entity.Reinvestment reinvestment) {
this.reinvestment = reinvestment;
}
public DecimalNumber getOutstandingUnits() {
return outstandingUnits;
}
public void setOutstandingUnits(DecimalNumber outstandingUnits) {
this.outstandingUnits = outstandingUnits;
}
}