Ajout d'une liste depuis un noeud

cancel
Showing results for 
Search instead for 
Did you mean: 
nathservice
Member II

Ajout d'une liste depuis un noeud

Bonjour

J'ai crée un modèle qui contient un type personne, avec des propriétés (nom, prénom, date de naissance…).

Voilà mon problème :

Pour quelques propriétés, j'utilise des constraints afin d'avoir des listes, comme par exemple pour la nationalité. Maintenant j'aimerai externaliser ces listes. Donc au lieu d'avoir :
 <property name="adresse:pays">
               <type>d:text</type>
                  <constraints>
                    …
                    <constraint name="adresse:listpays" type="LIST">
                    <parameter name="allowedValues">
                        <list>
                          <value>AFGHANISTAN</value>  
                          <value>ÅLAND ISLANDS</value>
                          <value>ALBANIA</value>
                                              …
                                             <value>ZIMBABWE</value>
                       </list>
                    </parameter>
                    …

j'aimerai pouvoir aller chercher ces values depuis un fichier(.csv, xml ou autres) ou mieux, depuis un noeud.

Mais après de longues recherches sur les forums, wiki, google… je ne vois vraiment pas comment faire. Si je pouvais avoir quelques explications sur le sujet, je suis preneur Smiley Wink

Merci beaucoup.

je suis toujours sur alfresco 3.4d
1 Reply
rguinot
Customer

Re: Ajout d'une liste depuis un noeud

Bonjour, c'est en effet possible dans la 3.4 via un peu de développement spécifique selon la logique choisie. Il faut s'inspirer de ce qui est fait pour le content store selector.
Voir la classe StoreSelectorConstraint. Vous devrez étendre ListOfValuesConstraint pour setter les valeurs dynamiquement.

Si vous avez besoin que certains services du repository soient disponibles pour l'initialisation de votre contrainte (comme dans l'exemple cité), il vous faudra utiliser le constraintRegistry en déclarant le type de contrainte REGISTERED dans votre modèle. celui-ci délèguera la validation de la contrainte au runtime à la contrainte dont vous aurez spécifié la clé dans le modèle.