113 lines
3.8 KiB
Markdown
113 lines
3.8 KiB
Markdown
# Variable meneuse ou suiveuse
|
|
|
|
## Variable meneuse
|
|
|
|
Une variable meneuse est une variable qui va guider la longueur d'autre variables (appelé variables suiveuse).
|
|
|
|
Une variable meneuse est une [variable](simple.md) qui est obligatoirement de type multiple.
|
|
|
|
Une variable meneuse peut être obligatoire.
|
|
|
|
Le [mode](../mode.md) par défaut correspond au plus petit mode définit par l'utilisateur des variables suiveuses.
|
|
|
|
## Variable suiveuse
|
|
|
|
Une variable suiveuse est une variable donc la longueur n'est pas déterminé par elle-même, mais est identique à celle de la variable meneuse dont elle dépend.
|
|
|
|
Une variable suiveuse est une variable placer juste derrière une variable meneuse ou une autre variable suiveuse.
|
|
|
|
L'ordre de définition des variables suiveuses est important.
|
|
|
|
Cette variable peut être de type multiple. Dans ce cas, pour un index determiné, il est possible de mettre plusieurs valeurs à une même variable.
|
|
|
|
Une variable suiveuse peut être obligatoire. Cela signifie que lorsqu'une variable meneuse est renseigné, il faut obligatoirement que la variable suiveuse est également une valeur à l'index considéré.
|
|
Si aucune valeur n'est définit pour la variable meneuse, aucune valeur n'est a spécifié pour la variable suiveuse.
|
|
|
|
Le [mode](../mode.md) par défaut d'une variable suiveuse correspond au [mode](../mode.md) de la variable meneuse.
|
|
|
|
Si une variable meneuse est caché ou désactivé, les variables suiveuses le seront également.
|
|
|
|
## Définition des variables meneuse et suiveuse
|
|
|
|
Voici un exemple de définition d'une variable meneuse et de deux variables meneuses :
|
|
|
|
```
|
|
<variables>
|
|
<family name="family">
|
|
<variable name="leader" multi='True'/>
|
|
<variable name="follower1"/>
|
|
<variable name="follower2" multi='True'/>
|
|
</family>
|
|
</variables>
|
|
<constraints>
|
|
<group leader="leader">
|
|
<follower>follower1</follower>
|
|
<follower>follower2</follower>
|
|
</group>
|
|
</constraints>
|
|
```
|
|
|
|
Le nom et la description du groupe prendra par défaut le nom et la description de la variable meneuse.
|
|
|
|
Il est possible d'en définit d'autres :
|
|
|
|
```
|
|
<constraints>
|
|
<group leader="leader" name="leadership" description="My leadership">
|
|
<follower>follower1</follower>
|
|
<follower>follower2</follower>
|
|
</group>
|
|
</constraints>
|
|
```
|
|
|
|
## Faire un calcul avec l'index de la variable meneuse
|
|
|
|
Dans un calcul sur un variable suiveuse il est possible de récupérer l'index de la variable meneuse :
|
|
|
|
```
|
|
<fill name="calc_val">
|
|
<param type="index"/>
|
|
<target>follower</target>
|
|
</fill>
|
|
```
|
|
|
|
## Définition des variables meneuse et suiveuse dans un dictionnaire extra
|
|
|
|
Voici un exemple de définition d'une variable meneuse et de deux variables meneuses dans un espace de nom "example" :
|
|
|
|
```
|
|
<variables>
|
|
<family name="family">
|
|
<variable name="leader" multi='True'/>
|
|
<variable name="follower1"/>
|
|
<variable name="follower2" multi='True'/>
|
|
</family>
|
|
</variables>
|
|
<constraints>
|
|
<group leader="example.family.leader">
|
|
<follower>follower1</follower>
|
|
<follower>follower2</follower>
|
|
</group>
|
|
</constraints>
|
|
```
|
|
|
|
Le chemin de la variable meneuse est traditionnel, par contre le chemin des variables suiveuses est le chemin relatif de la variable.
|
|
|
|
Le chemin d'une variable suiveuse est normalement "example.family.leader.follower1" mais la variable n'est pas encore une variable suiveuse à ce moment là du traitement. C'est pour cela qu'il ne faut, uniquement dans les groupes, mettre le nom de la variable suiveuse.
|
|
|
|
## Ajout d'une nouvelle variable suiveuse
|
|
|
|
Pour ajouter, dans un nouveau dictionnaire, une variable suiveuse à notre groupe, rien de plus simple, il suffit de redéfinir un groupe avec cette (ou ces) nouvelle variable :
|
|
|
|
```
|
|
<variables>
|
|
<family name="family">
|
|
<variable name="follower3"/>
|
|
</family>
|
|
</variables>
|
|
<constraints>
|
|
<group leader="leader">
|
|
<follower>follower3</follower>
|
|
</group>
|
|
</constraints>
|
|
```
|