MENU

  /   Parameter van een methode

Een methode (operation in pattern) kan 0 of meer parameters hebben. Deze parameters kunnen worden gespecificeerd in het pattern met de parameter children elementen.

 

      <operation name="" ...>
        ...
        <parameter  name=""
                    final=""
                    foreach="package|object|attribute|reference"
                    condition=""
                    package=""
                    var0=""
                    var1=""
                    var2=""
                    var3=""
                    var4=""
                    var5="">
          <library></library>
          <datatype></datatype>
          <apicomment></apicomment>
          <developercomment></developercomment>
        </parameter>
        ...
      </operation>

 

 

Met de parameter children van een operation worden de parameters (inclusief return) van deze methode gedefinieerd.
Het name attribuut is verplicht en geeft de naam van de parameter aan. De naam return is gereserveerd om de return parameter op te geven.

attributen van <parameter/>:

Naam Betekenis
name De naam van de parameter die gemaakt wordt. De name “return” is gereserveerd voor de return parameter
final true of false. Geeft aan of de parameter final gedefinieerd moet worden of niet. Standaard is een parameter final.
foreach Geeft aan of er ge√Įtereerd moet worden over het model. Mogelijke waarden: package, object, attribute, reference
condition Een expression die uitkomt op true of false. Indien er true uitkomt wordt het package (pattern) ook daadwerkelijk gemaakt, maar als er false uit komt niet.
vb:


<operation name="constructor"
           visibility="${fmsnippet.attribute.visibility_of_constructor}"
           foreach="currentModelObject.property.createConstructor"
           var0="${forEachPropertyValue}">
  <parameter name="${attribute.name}"
             foreach="attribute.property.useInConstructor"
             condition="${forEachPropertyValue}=${var0}">
	<datatype>${attribute.type}</datatype>
  </parameter>
  <parameter name="${reference.name}"
             foreach="reference.property.useInConstructor"
             condition="${forEachPropertyValue}=${var0}">
	<datatype>${reference.type}</datatype>
  </parameter>
  <body>${fmsnippet.java.model.operation.constructorUsingFields} </body>
</operation>

Met dit stukje pattern worden constructors gemaakt. De constructor wordt alleen gemaakt als het model object de property (metadata) createConstructor heeft. De waarde van de property createConstructor wordt opgeslagen in de variabele var0 en hiermee worden de juiste constructor parameters (argumenten) gevonden. Een attribute of reference wordt alleen als constructor argument gebruikt als het de property useInConstructor=${var0} heeft. Met deze constructie kunnen dus meerdere constructors worden gemaakt met verschillende parameters!
Het volgende stukje model.xml maakt een constructor met 2 parameters (firstName en lastName) voor het Person object.

<?xml version="1.0" encoding="UTF-8"?>
<model xsi:schemaLocation="http://www.firstbase.nl/xsd/personaliom/model http://www.firstbase.nl/xsd/personaliom/model.xsd"
	xmlns="http://www.firstbase.nl/xsd/personaliom/model"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<package name="domain_model">
		<object name="Person">
			<properties>
				<createConstructor>FirstConstructor</createConstructor>
			</properties>
			<attribute name="firstName" type="String" notnull="true" length="40">
				<properties>
					<useInConstructor>FirstConstructor</useInConstructor>
				</properties>
			</attribute>
			<attribute name="middleName" type="String" notnull="false" length="10">
				<properties>
				</properties>
			</attribute>
			<attribute name="lastName" type="String" notnull="true"	length="60">
				<properties>
					<useInConstructor>FirstConstructor</useInConstructor>
				</properties>
			</attribute>
		</object>
	</package>
</model>

package Naam van het package in het model (model.xml) wat gebruikt moet worden voor het uitvoeren van het foreach attribuut
object Naam van het object in het model (model.xml) wat gebruikt moet worden voor het uitvoeren van het foreach attribuut
var0 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var0. Naar deze waarde kan later worden gerefereerd d.m.v. ${var0}. Dit kan zowel in het pattern als in een snippet worden gebruikt.
var1 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var1. Naar deze waarde kan later worden gerefereerd d.m.v. ${var1}. Dit kan zowel in het pattern als in een snippet worden gebruikt.
var2 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var2. Naar deze waarde kan later worden gerefereerd d.m.v. ${var2}. Dit kan zowel in het pattern als in een snippet worden gebruikt.
var3 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var3. Naar deze waarde kan later worden gerefereerd d.m.v. ${var3}. Dit kan zowel in het pattern als in een snippet worden gebruikt.
var4 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var4. Naar deze waarde kan later worden gerefereerd d.m.v. ${var4}. Dit kan zowel in het pattern als in een snippet worden gebruikt.
var5 Waarde die je wil opslaan in de voorgedefinieerde variabele met naam var5. Naar deze waarde kan later worden gerefereerd d.m.v. ${var5}. Dit kan zowel in het pattern als in een snippet worden gebruikt.

subelementen van <parameter/>:

Naam Betekenis Aantal
library De waarde van library wordt als import statement toegevoegd aan de class of interface waar deze paramter in zit. 0 of meer
datatype Het type van de parameter. Als niets wordt ingevuld, dan wordt er standaard String van gemaakt. 0 of 1
apicomment Javadoc dat wordt toegevoegd aan deze parameter. 0 of 1
developercomment Commentaar dat aan deze parameter wordt toegevoegd. 0 of 1