Hardis - Séquence de feuilletage |
---|
Volet | ||||
---|---|---|---|---|
| ||||
XPath est un langage permettant d'adresser des éléments disposés dans un modèle de données arborescent (modèle ou où les éléments ou ont une relation d'appartenance parent - enfant). Un élément (ou noeud) peut être de différente nature :
Dans le cadre d'utilisation dans l'AMBSS, le modèle est constitué d'une arborescence de Java Beans. XPath est un langage permettant d'adresser des objets disposés dans un modèle de données arborescent (modèle ou les objets ou une relation d'appartenance parent - enfant). Un objet (ou noeud) peut être de différente nature :
La localisation des éléments est effectuée sous la forme de chemins de localisation, à la manière du système de répertoires Unix : Un chemin de localisation est composé de différentes étapes de localisation qui sont séparées par des barres obliques (/), de façon analogue à l'adressage de fichiers dans des systèmes de répertoires. L'ordre des nœuds est déterminé par le chemin (induit par l'imbrication des noeuds, du parent vers l'enfant). Le premier noeud est le noeud racine du chemin. Les chemins de localisation sont analysés de gauche à droite. Dans le cadre d'utilisation dans l'AMBSS, le modèle est constitué d'une arborescence de Java Beans :
|
Info | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
Clé standard d'un souscripteur Adélia
Un souscripteur est défini par un modèle objet arborescent en YAML (dans le fichier SubscribersConf.yml) ou en JSON (dans le body d'un requête HTTP d'API REST) :
|
|
---|
Noeud attribut
Une clé standard est définie par un noeud racine "subconf" qui identifie un souscripteur et stocke les informations le constituant. Les sous-noeuds "id", "startOnCreation" et "config" sont des noeuds attributs.
Les noeuds "id" et "startOnCreation" ont des types primitifs (alphanumérique et booléen). Leur valeurs sont accessibles par les chemins "subconf/id" et "subconf/startOnCreation".
Le noeud "config" est un noeud élément avec comme fils les sous-noeuds "adeliaPgm", "adeliaPoolName" et "brokerConfig".
Noeud liste
Pour récupérer les paramètres du programme EADELIA associé au souscripteur il faut accéder aux éléments du noeud liste 'subconf/config/adeliaPgm/parameters'. Il est possible d'utiliser la notation indexée pour accéder à un élément dans la liste :
'subconf/config/adeliaPgm/parameters[1]' permet d'accéder au premier élément de la liste.
Info | ||
---|---|---|
| ||
|
Accès aux propriétés d'une liste
Liste vide
Pour déterminer si un élément liste est vide, il faut utiliser l'attribut "empty" comme suit :
'subconf/config/adeliaPgm/parameters/empty' retourne une valeur booléene.
Taille de liste
La taille d'une liste peut être récupérée grâce à la fonction XPath prédéfinie count :
'count(subconf/config/adeliaPgm/parameters)'
ou par une fonction prédéfinie livrée dans l'AMBSS :
'adelUtils:collectionSize(subconf/config/adeliaPgm/parameters)'
Noeud élément Map
Dans certains cas d'utilisation un noeud élement représente une table de hachage (structure qui permet une association clé-valeur, c'est-à-dire une implémentation du type abstrait tableau associatif). Il s'agit d'un tableau ne comportant pas d'ordre (contrairement à un tableau ordinaire qui est indexé par des entiers). On accède à chaque valeur du tableau par sa clé, qui, transformée par une fonction de hachage en une valeur de hachage (un nombre), indexe les éléments de la table.
Dans ce cas les éléments attributs font office de clé.
Dans un souscripteur Adélia, les paramètres d'instanciation de la fabrique désignés par le chemin XPATH 'subConf/config/brokerConfig/factory/parameters' sont stockés sous la forme d'une Map. Chaque fabrique ayant une signature différente, le nom, la cardinalité et le type des paramètres sont définis par la fabrique.
Accès aux propriétés d'une map
Valeur associée à une clé
Pour accéder à la valeur associée à un nom de clé connu, il faut utiliser l'expression XPath suivante :
'subConf/config/brokerConfig/factory/parameters/provider' qui est un raccourci d'écriture de l'expression :
'subConf/config/brokerConfig/factory/parameters[@name='provider']'
Liste des clés
L'AMBSS fournit une fonction prédéfinie qui permet de retourner la liste des clés d'une table de hachage :
'adelUtils:mapKeys(subConf/config/brokerConfig/factory/parameters)' retourne un élément liste de deux éléments valeur ['provider', 'aggregate']
Liste des valeurs associées aux clés
L'AMBSS fournit une fonction prédéfinie qui permet de retourner la liste des valeurs associées aux clés d'une table de hachage :
'adelUtils:mapValues(subConf/config/brokerConfig/factory/parameters)' retourne un élément liste de deux éléments valeur ['factory.json', false]
Info | ||
---|---|---|
| ||
L'ordre des éléments des listes retournées par les deux fonctions mapKeys et mapValues correspond (la clé d'index 1 dans la liste mapKeys a une valeur associée qui correspond à l'index 1 dans la liste mapValues). |
Clé spécifique d'un souscripteur Adélia
Les clés spécifiques correspondant aux éléments variants 'subconf/config/brokerConfig/brokerConnection' et 'subconf/config/brokerConfig/subscribeTopic' suivent les mêmes principes d'écriture et de syntaxe. Se référer à la documentation liée à chaque courtier pour connaître le modèle de données des éléments variants.
Hardis - Haut de page |
---|
↑ Haut de page |