.. ******************************************************************************* * MetaFactory.io R2 * Technical Documentation * * File name : ProRef_Index.rst * Created by : Marnix Bochove (original text) * Updated by : Niels de Nies * * MetaFactory BV Amsterdam ******************************************************************************* .. include:: /inline-images.txt .. include:: /metadata_include.txt .. note:: |Hammer M| Update in the near future. The documentation in chapter 4.1 and subsequent sections is based on XML Schemas that are to be updated in due time. Project Reference ================= Every MetaFactory project requires a project configuration file, which can be in XML format (recommended) or :term:`YAML`. The other 2 required components in a project are the **model** and the **patterns** (code instructions). This document describes the required structure of the XML-version (named metafactory.xml) of the file and its child elements. Metafactory.xml describes where MetaFactory determines the location of its source files as well as the ones that will be generated. Structure of the project file ----------------------------- :numref:`PR-PI-01` shows a metafactory.xml project file with its root element . In metafactory.xml at least one and a maximum of three of these elements should be present. .. code-block:: xml :caption: Project file example :name: PR-PI-01 :linenos: src/model/model.xml src/pattern/pattern.xml src/snippets src/java xml/files/go/here other/files/go/inhere ... ... ... ... ... 1 or more ... ... ... ... Optionally you can also define your own generation schemes here which allow you to only generate a subset of the files, which can be defined by using ‘buildSet’ properties. .. list-table:: ** attributes>** :widths: 20 80 :header-rows: 1 :class: tight-table * - Name - Details * - allowDeprecated - Use: optional, Default: true .. rubric:: Sub elements The following elements can be defined from inside the element. .. list-table:: ** sub elements** :widths: 15 70 15 :header-rows: 1 :class: tight-table * - Name - Details - Number * - model - This element marks the location of model.xml, which is where all project data will be located See :ref:`PR-PI-01` line 6 - 1 * - pattern (code_instruction) - This element marks the location of the main pattern file, which is usually named ‘pattern.xml’. See :ref:`PR-PI-01` line 7 - 1 * - snippetsFolder - This element marks the location of the project’s pattern snippets. 0 or 1 See :ref:`PR-PI-01` line 8 - 1 * - output - This element marks the location of the project’s output folder. For the possible output options for the three file types see :ref:`PR-PI-01` line 9-13 - 0 or 1 * - buildSets - buildSets group individual buildSet elements. MetaFactory uses buildSets to define themed groups of files that enable partial generation of the project. See :ref:`PR-PI-01` lines 15-22 - 0 or 1 * - maps - The maps group the map elements. 0 or 1 A map element is used to alter the mapping of the build-in type sets javaTypes and hibernateTypes. - 0 or 1 * - propertyFiles - The purpose of this element is to be able to include files with properties. - 0 or 1 * - configuration - |Question S| - 0 or 1 * - businessStyle - Used for the JavaDoc - 0 or 1 .. toctree:: :maxdepth: 1 :caption: Detailed descriptions ProRef_Model ProRef_Pattern ProRef_SnippetsFolder ProRef_Output ProRef_BuildSets ProRef_Maps ProRef_PropertyFiles ProRef_Configuration ProRef_BusinessStyle