Présentation du SPI modèle

Les modèles fournissent les informations requises par HCL pour exécuter des tâches telles que l'agrégation de contenu ou la conception de navigation pour explorer le contenu agrégé. Les informations agrégées sont représentées via des modèles accessibles par programme à l'aide de la SPI du modèle (en lecture seule). En général, les informations d'un modèle sont persistantes (stockées dans une base de données) mais peuvent également être provisoires (élaborées et stockées uniquement dans la mémoire). Les modèles peuvent être représentés à l'aide d'une structure arborescente (noeuds ayant une relation parent-enfant), d'une structure de liste ou d'une structure de sélection (un élément sélectionné dans une structure arborescente).

Les modèles suivants peuvent être obtenus à l'aide de la SPI du modèle :

Modèle de contenu
Décrit la topologie dans laquelle le contenu est structuré. Le modèle de contenu est une structure arborescente composée de noeuds de contenu. Les pages, les étiquettes, les URL internes et les URL externes sont des types de noeuds de contenu.
Modèle de navigation
Décrit la topologie de la navigation visible pour un utilisateur spécifique, qui se compose de noeuds de navigation. Les noeuds de navigation sont impliqués par la structure du modèle de contenu. Un noeud de navigation référence le contenu représenté par les noeuds de contenu.
Modèle de sélection de navigation
Décrit le noeud sélectionné dans la navigation.
Modèle de métadonnées de contenu
Permet d'accéder aux métadonnées des noeuds du modèle de contenu. Les métadonnées sont agrégées avec la hiérarchie que le modèle de contenu expose.
Liste de langues
Liste de langues prises en charge.
Modèle de mise en page
Décrit la présentation d'une page, qui se compose de noeuds de présentation. Les noeuds de disposition peuvent être des conteneurs, qui affectent la disposition de la page (lignes et colonnes), ou des contrôles, qui affectent le contenu (portlets) d'une page.
Liste des marquages
Liste de langages de balisage pris en charge.
Liste des habillages
Liste d'habillages.
Liste des thèmes
Liste de thèmes.
PortletModel, AdminPortletModel
Décrit les portlets et les données de configuration qui leur sont associées.

Le tableau ci-après montre comment un modèle est demandé pour une utilisation spécifique à partir de la source de modèle, ainsi que la cible de modèle qui est renvoyée.

Tableau 1. Représentations d'une source de modèle, de la demande et du renvoi à partir d'un modèle et de la cible de modèle avec le modèle filtré obtenu
Source modèle Le modèle spécifique est demandé à partir de la source et celle-ci renvoie le modèle spécifique. Cible de modèle qui est renvoyée et filtrée pour une utilisation spécifique

Cette image représente une source de modèle sous la forme d'une structure arborescente de grande taille dans laquelle un noeud parent possède plusieurs noeuds enfant.

Cette image représente une requête de modèle et le résultats renvoyé dans lequel une flèche part du modèle pour y revenir ensuite.

L'image représente une cible de modèle qui fait partie de la source de modèle et qui est filtrée pour une utilisation spécifique. La cible de modèle représente une partie de la structure arborescente de la source de modèle, et avec un noeud parent possédant plusieurs noeuds enfant.

Création d'un modèle spécifique à partir des informations concernant la source

Les interfaces du modèle d'objet public fournissent l'accès en lecture seule aux ressources. La manipulation est possible uniquement via la SPI du contrôleur .

Les modèles et leurs éléments sont tous décrits à travers les interfaces résidant dans le module com.ibm.portal et ses sous-modules. Les interfaces les plus courantes sont situées à un niveau supérieur dans la hiérarchie du module. Par exemple, Identifiable, une interface présente sur presque toutes les ressources, est située directement sous com.ibm.portal.

Portée de modèle

Les modèles présentent des informations en fonction du contrôle d'accès. Par conséquent, les modèles sont configurés pour un utilisateur spécifique et les demandes pour récupérer des informations de modèle renvoient uniquement les ressources auxquelles l'utilisateur a accès.

Le concept de portails virtuels permet de configurer certains modèles dans la portée du portail virtuel dans lequel un utilisateur travaille. Pour le moment, ce concept de configuration s'applique au modèle de contenu, au modèle de navigation et au modèle de sélection de navigation. Ces modèles configurent leurs ressources dans la portée du portail virtuel dans lequel un utilisateur travaille.

Module principal com.ibm.portal

Le module com.ibm.portal contient des interfaces généralement utilisées pour le modèle objet. Ce document décrit les interfaces et les classes importantes contenues dans le modèle d'objet. Il ne décrit pas chaque classe. Pour obtenir des informations complètes sur toutes les interfaces, lire la documentation Javadoc.

La plupart des ressources contiennent un identificateur. Vous pouvez utiliser ce dernier pour les adresser ou les localiser. Cet identificateur est défini avec l'interface Identifiable qui vous permet d'extraire l'ID d'un élément. Un ID objet identifie un élément de manière unique dans une installation et au-delà (l'ID est également appelé GUID : identificateur unique universel). Un ID objet peut éventuellement posséder un nom unique (nom qui ne peut exister qu'une fois dans chaque installation) pour simplifier le traitement d'éléments spécifiques.

N'utilisez pas toString sur des ID objet. La représentation explicite renvoyée ne peut pas être analysée comme objet ObjectID. Pour une conversion entre un objet ObjectID et sa représentation sous forme de chaîne, utilisez l'interface Identification (voir le module com.ibm.portal.identification).

Une opération commune consiste à rechercher des ressources ayant un ID objet spécifique. Pour permettre l'exécution de cette opération, le concept de localisateur est introduit. Un localisateur est fourni par un modèle et permet de rechercher des éléments du modèle de manière spécifique. Pour obtenir cet objet localisateur, vous devez utiliser la méthode getLocator d'un objet qui implémente l'interface LocatorProvider.

Vous pouvez utiliser l'interface de localisateur générique pour localiser une ressource par son ID objet (findByObjectID) ou par son nom unique (findByUniqueName). Certains modèles fournissent des localisateurs spécialisés qui développent le localisateur générique pour proposer des fonctions de recherche supplémentaires, telles que la recherche par titre ou d'autres critères.

D'un point de vue générique, les modèles sont des listes ou des arborescences. Par conséquent, les interfaces TreeModel et ListModel sont fournies dans le module principal. Dans un modèle d'arborescence, vous pouvez exécuter les tâches suivantes :

  • Obtenir le noeud racine d'un modèle d'arborescence (getRoot)
  • Analyser les enfants d'un noeud du modèle (hasChildren)
  • Obtenir les enfants d'un noeud du modèle (getChildren)
  • Obtenir le parent d'un noeud du modèle (getParent)

Avec ces méthodes, vous pouvez explorer un modèle d'arborescence. Vous devez obtenir les arguments d'entrée qui représentent les noeuds du modèle à partir du modèle proprement dit.

Combiné au concept de localisateur abordé précédemment, un modèle d'arborescence devient un modèle explorable de l'arborescence : SearchableTreeModel est un modèle de l'arborescence également développé à partir de LocatorProvider.

Certains modèles prennent également la forme d'une liste, par exemple la liste des balisages ou la liste des langues prises en charge par HCL. La méthode générique pour accéder directement aux éléments de la liste consiste à utiliser l'itérateur fourni (méthode de l'itérateur). Lorsqu'une méthode renvoie un modèle de liste, elle utilise l'interface ListModel. Cependant, dans certains cas, elle peut également renvoyer un élément PagedListModel, qui est développé à partir de ListModel et fournit en plus un itérateur paginé. Ainsi, les éléments du modèle de liste peuvent être obtenus par blocs, ce qui peut améliorer les performances par rapport à l'obtention de chaque élément séparé.

Les modèles de liste deviennent explorables à l'instar des modèles d'arborescence : SearchableListModel est un modèle de liste qui peut également être développé à partir de LocatorProvider.

L'interface répandue sur les éléments des modèles s'appelle Localized. Cette interface fournit un titre et une description pour un élément. Le titre et la description sont des propriétés qui dépendent de l'environnement local. Pour obtenir un titre ou une description, appelez getTitle(Locale) ou getDescription(Locale), selon les cas.
Remarque : Un élément renvoie un titre ou une description uniquement si ces informations existent dans l'environnement local exact transmis aux méthodes mentionnées. Aucun mécanisme de rétromigration n'est implémenté dans ces méthodes. Un mécanisme de rétromigration approprié doit être utilisé par les auteurs de l'appel à la méthode de l'interface Localized, ou le mécanisme par défaut fourni par LocalizedStringResolver (voir le module com.ibm.portal.model).