Le magasin OpenSearch implémente uniquement l'API de lecture dojo.data. Pour plus d'informations sur l'API, reportez-vous à la documentation de référence suivante. Les informations contenues dans cette documentation proviennent du fichier dojo.data.api.Read et s'appliquent à tous les magasins. La seule restriction ayant trait au magasin OpenSearch concerne les attributs. Un seul attribut est défini pour les éléments du magasin OpenSearch. Cet attribut, intitulé content, représente le contenu des résultats de la recherche. Les résultats incluent l'élément de contenu d'un flux Atom, l'élément de description d'un flux RSS ainsi que le contenu HTML d'une ligne parmi les lignes de résultats HTML renvoyées.
Il s'agit d'une API abstraite qui sert de référence aux implémentations du fournisseur de données. Pour plus d'informations sur les API dojo.data, visitez le site : http://www.dojotoolkit.org/node/98
Résumé des fonctions | |
---|---|
Objet | getValue(Object item, String attribute, String defaultValue) Permet d'extraire la valeur de l'attribut spécifié au niveau de l'élément. |
Array | getValues(Object item, String attribute) Permet d'extraire les valeurs de l'attribut spécifié au niveau de l'élément. |
Array | getAttributes(Object item) Renvoie un tableau qui contient l'ensemble des attributs de l'élément. |
Booléen | hasAttribute(Object item, String attribute) Renvoie true si une valeur est affectée à l'attribut de l'élément. |
Booléen | containsValue(Object item, String attribute, Object value) Renvoie true si la valeur indiquée fait partie des valeurs susceptibles d'être renvoyées par getValues(). |
Booléen | isItem(Object something) Indique si *something* est un élément et s'il provient de cette instance de magasin. |
Booléen | isItemLoaded(Object something) Indique si *something* est chargé ou non dans la mémoire locale. |
void | loadItem(Object keywordArgs) Cette méthode charge un élément de manière à ce que store.isItemLoaded(item) renvoie la valeur true lors d'un appel ultérieur. |
Objet | fetch(Object keywordArgs) Si vous spécifiez une requête et définissez un ensemble d'options (par exemple, une option de démarrage (start) ou le nombre (count) d'éléments à renvoyer), cette méthode exécute la requête et les résultats sont disponibles sous forme d'éléments de données. |
Objet | getFeatures() Renvoie un objet contenant un mot-clé simple et indiquant les fonctionnalités d'interface implémentées par le magasin de données. |
void | close(Object request) Indique au magasin qu'il doit supprimer les informations associées à une demande particulière. |
String (chaîne) | getLabel(Object item) Méthode permettant d'inspecter l'élément et de renvoyer un intitulé lisible qui décrit l'élément de façon générale. |
Array | getLabelAttributes(Object item) Méthode permettant d'inspecter l'élément et de renvoyer un tableau récapitulatif des attributs éventuels, utilisés pour générer l'intitulé de l'élément. |
Détails des fonctions |
---|
Renvoie une seule valeur d'attribut. Renvoie defaultValue si aucune valeur n'est affectée à l'attribut de l'élément. Renvoie null si la valeur null a été affectée à l'attribut. Renvoie undefined si aucune valeur n'est affectée à l'attribut de l'élément. Cela équivaut à dire que l'élément ne possède pas cet attribut.
Indiquer qu'aucune valeur n'est définie pour l'attribut y d'un élément x équivaut à dire que l'élément x ne possède pas l'attribut y. Cet oxymore sert à indiquer qu'un attribut existe mais qu'aucune valeur ne lui est attribuée. Il peut aussi indiquer que l'élément possède l'attribut mais qu'aucune valeur n'est attribuée à ce dernier.
Si store.hasAttribute(item, attribute) renvoie false,
store.getValue(item, attribute) renvoie undefined.
var darthVader = store.getValue(lukeSkywalker, "father");
Bien que la méthode getValues() fonctionne comme la méthode getValue(), elle renvoie toujours un tableau et non une seule valeur d'attribut. Le tableau peut être vide, contenir une seule valeur d'attribut ou en contenir plusieurs. Si aucune valeur n'est définie pour l'attribut de l'élément, getValues() renvoie un tableau vide : []. Si store.hasAttribute(item, attribute) renvoie false, store.getValues(item, attribute) renvoie [].)
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
Renvoie un tableau qui contient l'ensemble des attributs de l'élément. Cette méthode renvoie un tableau ; si l'élément ne possède aucun attribut, getAttributes() renvoie un tableau vide : [].
var array = store.getAttributes(kermit);
Renvoie true si une valeur est affectée à l'attribut de l'élément.
var trueOrFalse = store.hasAttribute(kermit, "color");
Renvoie true si la valeur est l'une des valeurs renvoyées par getValues().
var trueOrFalse = store.containsValue(kermit, "color", "green");
Renvoie true si le paramètre something est un élément et qu'il provient de l'instance de magasin. Renvoie false si la valeur attribuée au paramètre something est une valeur littérale, un élément provenant d'une autre instance de magasin ou tout objet différent d'un élément.
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
Renvoie false si la valeur de isItem(something) est false. Renvoie false si la valeur de isItem(something) est true et si l'élément n'est pas encore chargé dans la mémoire locale (dans le cas où l'élément n'a pas encore été lu par le serveur, par exemple).
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
Cette méthode charge l'élément de manière à ce que store.isItemLoaded(item) renvoie la valeur true lors d'un appel ultérieur. Si vous invoquez la fonction isItemLoaded() et si celle-ci renvoie la valeur true avant même que loadItem() ait été appelée, l'objet loadItem() n'effectue aucune tâche et n'invoque pas les gestionnaires de rappels. Vous devez donc vérifier que l'élément n'a pas encore été chargé avant d'invoquer la méthode.
{ item: object, onItem: Function, onError: Function, scope: object }
Si vous spécifiez une requête ou définissez un ensemble d'options (par exemple, une option de démarrage (start) ou le nombre (count) d'éléments à renvoyer), cette méthode exécute la requête et les résultats sont disponibles sous forme d'éléments de données. Les magasins doivent normalement fonctionner de manière asynchrone et globale. Les rappels sont ainsi utilisés pour renvoyer des éléments localisés à l'aide des paramètres d'extraction.
Un objet de demande est immédiatement renvoyé. La demande de base est constituée des arguments (args) de mot-clé transmis à la fonction fetch et une autre fonction associée, abort(). Utilisez l'objet de demande renvoyé pour annuler l'extraction. Tous les éléments de données renvoyés sont transmis via les rappels définis dans les paramètres d'extraction et ne figurent pas sur l'objet de demande.
Cela ne signifie pas que les magasins personnalisés ne peuvent pas ajouter de méthodes et propriétés à l'objet de demande renvoyé, mais seulement que l'API n'en a pas besoin. Pour plus d'informations sur l'API de demande, reportez-vous au fichier dojo.data.api.Request.
{ query: query-string ou query-object, queryOptions: object, onBegin: Function, onItem: Function, onComplete: Function, onError: Function, scope: object, start: int count: int sort: array }
{ ignoreCase: boolean, //Whether the query matches case sensitivity. Default behaviour is false. deep: boolean //Whether a fetch does a deep search of items and each child //item instead of only root-level items in a data store. Default is false. }
{ attribute: attribute || attribute-name-string, descending: true|false; // Optional. Default is false. }Si vous comparez des attributs et qu'aucune valeur n'est affectée à l'attribut d'un élément donné (undefined), ce dernier s'affiche en fin de liste, selon la logique de tri par défaut, qui classe les éléments par ordre croissant. Si l'ordre de tri est décroissant, ces éléments s'affichent en début de liste.
La méthode fetch() renvoie un objet JavaScript conforme à l'API définie dans le fichier dojo.data.api.Request. Il s'agit généralement de l'objet keywordArgs renvoyé avec les fonctions associées, requises par Request.js. L'objectif général est de proposer à l'appelant d'une fonction fetch, une méthode lui permettant l'extraction en cours.
Au moment du renvoi, l'objet de demande peut avoir d'autres propriétés, par exemple, request.store, qui correspond à un pointeur vers l'objet du magasin de données dont fetch() est une méthode.
// Fetch all books identified by the query and call 'showBooks' when complete var request = store.fetch({query:"all books", onComplete: showBooks}); // Fetch all items in the story and call 'showEverything' when complete. var request = store.fetch(onComplete: showEverything); // Fetch only 10 books that match the query 'all books', starting at the fifth book found during the search. // This demonstrates how paging can be done for specific queries. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Fetch all items that match the query, calling 'callback' each time an item is located. var request = store.fetch({query:"foo/bar", onItem:callback}); // Fetch the first 100 books by author King; call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Locate the books written by Author King; sort on title and publisher, then return the first 100 items from the sorted items. var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "title", descending: true}, {attribute: "publisher"}], ,start: 0, count:100, onComplete: 'showKing'}); // Fetch the first 100 books by authors starting with the name King, then call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Fetch the first 100 books by authors ending with 'ing', but only have one character before it (King, Bing, Ling, Sing, etc.), then call showBooks when up to 100 items have been located. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Fetch the first 100 books by author King, where the name is displayed as King, king, KING, kInG, and so on, then call showKing when up to 100 items have been located. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Paging: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // string matching sort: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // When the user presses the "Next Page" button fetchArgs.start += 20; store.fetch(fetchArgs); // Get the next 20 items
La méthode close() indique au magasin qu'il doit supprimer les informations associées à une demande particulière.
La méthode close() indique au magasin qu'il doit supprimer les informations associées à une demande particulière. L'API est généralement conçue pour recevoir comme paramètre un objet de demande renvoyé par une méthode fetch. Le magasin supprime alors tout élément associé à la demande. Les opérations possibles sont, par exemple, l'effacement de la mémoire cache interne du magasin de données ou la fermeture de toutes les connexions "ouvertes". Pour certaines implémentations de magasin, l'appel à la méthode peut être une instruction ineffective.
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
Méthode permettant d'inspecter l'élément et de renvoyer un intitulé lisible qui décrit l'élément de façon correcte ou de façon générale.
La plupart des intitulés sont généralement représentés par une valeur d'attribut spécifique ou une collection de valeurs d'attributs combinées de manière à nommer l'élément. Ainsi, si l'élément représente un utilisateur, les méthodes peuvent renvoyer l'intitulé sous la forme suivante : first_name last_name où first_ name (prénom) et last_name (nom) sont des attributs de l'élément. Si le magasin ne parvient pas à définir un intitulé lisible par l'utilisateur, la méthode renvoie undefined. Les utilisateurs qui souhaitent personnaliser la façon dont leur instance de magasin attribue un intitulé aux éléments, peuvent remplacer la fonction getLabel() ou agrandir le magasin et remplacer la fonction dans la classe d'extension.
Méthode permettant d'inspecter l'élément et de renvoyer un tableau récapitulatif des attributs éventuels, utilisés pour générer l'intitulé de l'élément.
La fonction vise à aider les développeurs d'interface utilisateur (UI) à identifier les attributs pouvant être ignorés lors de l'affichage de l'élément. Cela s'applique aux cas où l'UI utilise l'intitulé comme un identificateur à part entière, permettant de masquer les informations redondantes.