Fait référence à un élément dans une liste en cours de traitement.
L'expression current peut uniquement apparaître dans une expression qui traite des éléments dans une liste, par exemple :
Pour plus de clarté, vous pouvez affecter un alias à l'expression current, qui doit correspondre à l'alias de l'expression list dont il est fait référence. Les alias sont nécessaires si le même calcule comporte davantage d'expressions current dans la portée.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_listitem" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Household"> <Attribute name="members"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="adults"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <filter> <list> <reference attribute="members"/> </list> <listitemexpression> <!-- La référence utilise current pour faire référence à un élément présent dans la liste des objets de règle Person. --> <reference attribute="isAdult"> <current/> </reference> </listitemexpression> </filter> </derivation> </Attribute> </Class> <Class name="Person"> <Attribute name="children"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="age"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="isAdult"> <type> <javaclass name="Boolean"/> </type> <derivation> <compare comparison=">="> <reference attribute="age"/> <Number value="18"/> </compare> </derivation> </Attribute> <!-- Enfants de cette personne qui ne sont pas encore adultes. --> <Attribute name="dependentChildren"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <filter> <!-- Utilisez un alias pour éviter toute confusion (lecteurs humains du jeu de règles !) entre la personne parent et la personne enfant. --> <list alias="child"> <reference attribute="children"/> </list> <listitemexpression> <not> <reference attribute="isAdult"> <!-- L'alias current doit correspondre à celui de la liste. --> <current alias="child"/> </reference> </not> </listitemexpression> </filter> </derivation> </Attribute> </Class> </RuleSet>