.. ******************************************************************************* * MetaFactory.io R2 * Technical Documentation * * File name : MapiRef_ModelObject.rst * Created by : Marnix Bochove (original text) * Last update : 28-03-2021 * Updated by : Niels de Nies * * MetaFactory BV Amsterdam ******************************************************************************* .. include:: /inline-images.txt .. include:: /external-links.txt Model API Model Object ======================= ModelObject is a child of ModelPackage and can contain Metadata, ModelAttribute children and ModelReference children. All mentioned functions are available on ModelObject which is made available in Freemarker/Velocity by iterating over the element tree in model.xml. In any step of the operation process you can access ModelObject, which is always the currently active object. |Eye M| Getter functions in Freemarker/Velocity can be accessed as an object property, so modelObject.getName() can be written as **modelObject.name**. For an image see :ref:`API_hierarchy` Overview -------- .. list-table:: **API of 'Model Object'** :widths: 20 80 :header-rows: 1 :class: tight-table * - Modifier and Type - Method and Description * - void - :ref:`addMetaData(String key, String value) ` * - void - :ref:`addMetaData(String key, String value, String description) ` * - void - :ref:`addToAttributes(ModelAttribute attributes) ` * - void - :ref:`addToReferences(ModelReference references) ` * - void - :ref:`deleteFromAttributes(ModelAttribute attributes) ` * - void - :ref:`deleteFromReferences(ModelReference references) ` * - ModelAttribute - :ref:`findAttributeByMetaData(String key) ` * - ModelAttribute - :ref:`findAttributeByMetaData(String key, String value) ` * - ModelAttribute - :ref:`findAttributeByName(String attributeName) ` * - ModelAttribute - :ref:`findAttributeByType(String attributeType) ` * - List - :ref:`findAttributesByMetaData(String key) ` * - List - :ref:`findAttributesByMetaData(String key, String value) ` * - List - :ref:`findAttributesByType(String attributeType) ` * - List - :ref:`findMetaDataByKey(String expression) ` * - ModelReference - :ref:`findReferenceByMetaData(String key) ` * - ModelReference - :ref:`findReferenceByMetaData(String key, String value) ` * - ModelReference - :ref:`findReferenceByName(String referenceName) ` * - ModelReference - :ref:`findReferenceByType(String referenceType) ` * - List - :ref:`findReferencesByMetaData(String key) ` * - List - :ref:`findReferencesByMetaData(String key, String value) ` * - List - :ref:`findReferencesByMultiplicity(String referenceMultiplicity) ` * - List - :ref:`findReferencesByType(String referenceType) ` * - List - :ref:`getAttributes() ` * - String - :ref:`getAttributeValue(String attributeName) ` * - String - :ref:`getFileComment() ` * - String - :ref:`getKind() ` * - List - :ref:`getMetaData() ` * - String - :ref:`getMetaData(String metaDataKey) ` * - String - :ref:`getMetaData(String metaDataKey, boolean throwExceptionIfNotFound) ` * - String - :ref:`getMetaData(String metaDataKey, String defaultValue) ` * - ModelPackage - :ref:`getModelPackage() ` * - String - :ref:`getName() ` * - List - :ref:`getReferences() ` * - boolean - :ref:`hasMetaData(String key) ` * - boolean - :ref:`hasMetaData(String key, String value) ` * - void - :ref:`setAttributes(List attributes) ` * - void - :ref:`setFileComment(String fileComment) ` * - void - :ref:`setModelPackage(ModelPackage modelPackage) ` * - void - :ref:`setName(String name) ` * - void - :ref:`setReferences(List references) ` Details ------- .. include:: include/addMetaData2.txt .. include:: include/addMetaData3.txt addToAttributes(ModelAttribute attributes) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void addToAttributes(ModelAttribute attributes) .. rubric:: Description Adds a single attribute to this ModelObject. .. rubric:: Example none addToReferences(ModelReference references) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void addToReferences(ModelReference references) .. rubric:: Description Adds a single reference to this ModelObject. .. rubric:: Example none deleteFromAttributes(ModelAttribute attributes) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void deleteFromAttributes(ModelAttribute attributes) .. rubric:: Description Delete a single attribute from this ModelObject. .. rubric:: Example none deleteFromReferences(ModelReference references) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void deleteFromReferences(ModelReference references) .. rubric:: Description Delete a single reference from this ModelObject. .. rubric:: Example none findAttributeByMetaData(String key) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelAttribute findAttributeByMetaData(String key) .. rubric:: Description Returns a single attribute of this ModelObject by given metadata key. .. rubric:: Example none findAttributeByMetaData(String key, String value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelAttribute findAttributeByMetaData(String key, String value) .. rubric:: Description Returns a single attribute of this ModelObject by given metadata key, while also passing the value that the content that this metadata should hold. For example, pass key ‘transientField’ with value ‘true’. |Eye S| Remember that there are no predefined metadata, you define them yourself. .. rubric:: Example none findAttributeByName(String attributeName) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelAttribute findAttributeByName(String attributeName) .. rubric:: Description Returns a single attribute of this ModelObject by name. .. rubric:: Example none findAttributeByType(String attributeType) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelAttribute findAttributeByType(String attributeType) .. rubric:: Description Returns a single attribute of this ModelObject by type. This type might be ‘String’, ‘integer’, ‘Integer’ or others. |Glasses S| For details on data types see: :ref:`Data type mappings ` .. rubric:: Example none findAttributesByMetaData(String key) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findAttributesByMetaData(String key) .. rubric:: Description Returns a list of attributes of this ModelObject by given metadata key. .. rubric:: Example none findAttributesByMetaData(String key, String value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findAttributesByMetaData(String key, String value) .. rubric:: Description Returns a list of attributes of this ModelObject by given metadata key, while also passing the value that the content that this metadata should hold. For example, pass key ‘transientField’ with value ‘true’. |Eye S| Remember that there are no predefined metadata, you define them yourself. .. rubric:: Example none findAttributesByType(String attributeType) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findAttributesByType(String attributeType) .. rubric:: Description Returns a list of attributes of this ModelObject by type. This type might be ‘String’, ‘integer’, ‘Integer’ or others. View the type mappings here. |Glasses S| For details on data types see: :ref:`Data type mappings ` .. rubric:: Example none .. include:: include/findMetaDataByKey1.txt findReferenceByMetaData(String key) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java .. rubric:: Description .. rubric:: Example none findReferenceByMetaData(String key, String value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelReference findReferenceByMetaData(String key, String value) .. rubric:: Description Returns a single reference of this ModelObject by MetaData key that has the given value. .. rubric:: Example none findReferenceByName(String referenceName) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelReference findReferenceByName(String referenceName) .. rubric:: Description Returns a single referency of this ModelObject by name. .. rubric:: Example none findReferenceByType(String referenceType) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java ModelReference findReferenceByType(String referenceType) .. rubric:: Description Returns a single referency of this ModelObject by type. This type would be another ModelObject you have defined. .. rubric:: Example none findReferencesByMetaData(String key) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findReferencesByMetaData(String key) .. rubric:: Description Returns a list of references of this ModelObject by MetaData key. .. rubric:: Example none findReferencesByMetaData(String key, String value) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findReferencesByMetaData(String key, String value) .. rubric:: Description Returns a list of references of this ModelObject by MetaData key that has the given value. .. rubric:: Example none findReferencesByMultiplicity(String referenceMultiplicity) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findReferencesByMultiplicity(String referenceMultiplicity) .. rubric:: Description Returns a list of references of this ModelObject by multiplicity, e.g. “0..1”. .. rubric:: Example none findReferencesByType(String referenceType) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java List findReferencesByType(String referenceType) .. rubric:: Description Returns a list of references of this ModelObject by type. This type would be another ModelObject you have defined. .. rubric:: Example none getAttributes() ~~~~~~~~~~~~~~~ .. code-block:: java List getAttributes() .. rubric:: Description Returns a list of all attributes (type ModelAttribute) of a ModelObject. .. rubric:: Example none .. include:: include/getAttributeValue1.txt .. include:: include/getFileComment.txt .. include:: include/getKind.txt .. include:: include/getMetaData.txt .. include:: include/getMetaData1.txt .. include:: include/getMetaData1a.txt .. include:: include/getMetaData2.txt getModelPackage() ~~~~~~~~~~~~~~~~~ .. code-block:: java ModelPackage getModelPackage() .. rubric:: Description Returns the ModelPackage parent of this ModelObject. .. rubric:: Example none .. include:: include/getName.txt getReferences() ~~~~~~~~~~~~~~~ .. code-block:: java List getReferences() .. rubric:: Description Gets a list of all references of this ModelObject. You can use freemarker to iterate over it. .. rubric:: Freemarker example .. code-block:: <#assign allObjectReferences = modelObject.getReferences()> <#list allObjectReferences as reference> <#--Do something with the reference, like displaying it as a form input field.--> .. include:: include/hasMetaData1.txt .. include:: include/hasMetaData2.txt setAttributes(List attributes) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void setAttributes(List attributes) .. rubric:: Description Adds a set of attributes to this ModelObject. .. rubric:: Example none .. include:: include/setFileComment1.txt setModelPackage(ModelPackage modelPackage) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void setModelPackage(ModelPackage modelPackage) .. rubric:: Description Sets the ModelPackage parent of this ModelObject. .. rubric:: Example none .. include:: include/setName1.txt setReferences(List references) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: java void setReferences(List references) .. rubric:: Description Adds a set of references to this ModelObject. .. rubric:: Example none