Permet d'extraire un élément unique d'une liste.
L'expression singleitem peut être utile lorsqu'une liste n'est supposée contenir qu'un seul élément, par exemple, lors du filtrage d'une liste selon des critères, qui ne doivent sélectionner qu'un seul élément de la liste.
L'expression singleitem permet de définir les éléments suivants :
Le comportement lorsque la liste est vide :
Une erreur d'exécution s'est produite (utilisez cette option si la liste ne doit pas être vide) ; ou
La valeur null est renvoyée.
Le comportement lorsque la liste contient plus d'un élément :
Une erreur d'exécution s'est produite (utilisez cette option si la liste ne doit pas contenir plus d'un élément) ;
La valeur null est renvoyée ;
Le premier élément de la liste est renvoyé ; ou
Le dernier élément de la liste est renvoyé.
Pour extraire un élément à partir d'un emplacement spécifique d'une liste, voir get dans Opérations de liste utiles.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_singleitem" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Person"> <Attribute name="dateOfBirth"> <type> <javaclass name="curam.util.type.Date"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="children"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <!-- Le premier né de cette personne --> <Attribute name="firstBornChild"> <type> <ruleclass name="Person"/> </type> <derivation> <!-- extrait le premier-né, le cas échéant - si aucun enfant, renvoie la valeur null --> <singleitem onEmpty="returnNull" onMultiple="returnFirst"> <!-- trie les enfants par date de naissance --> <sort> <list alias="child"> <reference attribute="children"/> </list> <sortorder> <sortitem direction="ascending"> <reference attribute="dateOfBirth"> <current alias="child"/> </reference> </sortitem> </sortorder> </sort> </singleitem> </derivation> </Attribute> <!-- Extrait l'enregistrement d'informations unique du foyer de la mémoire externe - celle-ci doit toujours n'en contenir qu'un seul - toute autre valeur entraîne une erreur. --> <Attribute name="householdInformation"> <type> <ruleclass name="HouseholdInformation"/> </type> <derivation> <singleitem onEmpty="error" onMultiple="error"> <readall ruleclass="HouseholdInformation"/> </singleitem> </derivation> </Attribute> </Class> <Class name="HouseholdInformation"> <Attribute name="householdContainsDisabledPerson"> <type> <javaclass name="Boolean"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> </RuleSet>