[Résolu]JAVA API:Qname: Propriété ou association

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

[Résolu]JAVA API:Qname: Propriété ou association

Bonjour,

Est-il possible de savoir si un QName d'un modèle est une propriété ou une association et ce avec la java API d'alfresco?

Et ce autrement que via le DictionaryService.getAllProperties(QName).

merci d'avance.

Michel
4 Replies
rivarola
Active Member

Re: [Résolu]JAVA API:Qname: Propriété ou association

Est-il possible de savoir si un QName d'un modèle est une propriété ou une association et ce avec la java API d'alfresco?
???

Les modèles ont un QName, les propriétés et les associations aussi. Mais je ne vois pas pourquoi le QName d'un modèle serait aussi celui d'une propriété ou d'une association…
michel
Member II

Re: [Résolu]JAVA API:Qname: Propriété ou association

Bonjour,

En fait, j'ai le même traitement (à 2, 3 choses près) à faire que ce soit une association ou une propriété.

Donc pour ce faire j'ai créé une action qui prend comme paramètre une liste de QName  et si c'est une association dans le modèle je fais un nodeService.getChildAssocs() et si c'est une propriété, je fais un nodeService.getProperty() pour chacun des QName.

Donc dans mon action je ne sais pas, juste avec un QName comment savoir si c'est une assoc ou une propriété.

Merci d'avance.
thomasb
Member II

Re: [Résolu]JAVA API:Qname: Propriété ou association

Un QName n'est qu'un nom (qualifié avec un espace de nommage pour éviter tout conflit, mais ce n'est qu'un nom). Un même QName peut être utilisé pour nommer différentes choses: un modèle, un type, un aspect, une propriété, un type d'assoc, un type de child-assoc, une contrainte, une assoc, une child-assoc, etc.

Il faut ici utiliser le NodeService pour récupérer le type du nœud à traiter et les aspects qui lui ont été appliqués et les "explorer" avec le DictionnaryService afin de déterminer, dans le contexte de ce nœud, à quoi correspond ce QName.

…ou alors, plus simple mais un peu moins robuste, tenter un getProperty(), et si ça répond null[/null] faire un getChildAssocs().
michel
Member II

Re: [Résolu]JAVA API:Qname: Propriété ou association

Bonjour,

Il faut ici utiliser le NodeService pour récupérer le type du nœud à traiter et les aspects qui lui ont été appliqués et les "explorer" avec le DictionnaryService afin de déterminer, dans le contexte de ce nœud, à quoi correspond ce QName.

Effectivement, j'ai mal lu la première fois l'interface DictionaryService, il y a bien les 2 méthodes qui donnent les définitions:


    /**
     * Gets the definition of the property as defined by its owning Class.
     *
     * @param propertyName the property name
     * @return the property definition (or null, if it doesn't exist)
     */
PropertyDefinition getProperty(QName propertyName);

Et


    /**
     * Gets the definition of the association as defined by its owning Class.
     *
     * @param associationName the property name
     * @return the association definition (or null, if it doesn't exist)
     */
AssociationDefinition getAssociation(QName associationName);

Encore un grand merci pour l'aide.

Michel.