Les classes de Capsis sont organisées en packages java (paquetages : des groupes de classes). Ces packages sont disposés dans capsisRoot/bin/. Cela se traduit sur le disque par des arborescences de répertoires ayant les mêmes noms que les composantes des noms de packages (ex : les classes du package capsis.kernel sont dans le répertoire capsisRoot/bin/capsis/kernel/
).
Ce document décrits les packages de Capsis4, de ses pilotes, modules et extensions.
capsis.kernel : classes du noyau Capsis4. Ce package contient les classes fondamentales, organisationnelles et fonctionnelles du noyau applicatif.
Ex : Engine,GModel,Session,Scenario, Step, GStand, GTree, GPlot…
capsis.util : classes utilitaires. Ces classes ont utilisables par toutes les autres classes de l'application, modules et extensions compris.
Ex : GPilot,GRelay,Tools,Namable, Numberable, Spatialized, Starter, Panel2D…
capsis.pilotName : package de pilotage. Un pilote Capsis4 est un ensemble de classes permettant l'utilisation de Capsis4 dans un contexte donné. Ainsi, le pilote par défaut est gui, un pilote interactif basé sur des fenêtres, menus et dialogues qui permet d'utiliser Capsis4 interactivement. Les classes décrivant ce pilote font partie du package capsis.gui
.
Le pilote gui comprend des classes disposées dans un package “inférieur” : capsis.gui.command. Ce dernier contient toutes les commandes déclenchables par gui. Leur regroupement dans un package a part est un choix qui a été fait lors de la conception.
Note : Les packages capsis.gui et capsis.gui.command ne sont pas imbriqués au sens de Java. Ils sont considérés comme distincts. Parler de package “inférieur” est une facilité de langage qui correspond à une réalité au niveau de l'organisation : capsis/gui/
contient bien un répertoire command/
.
Les modules de Capsis4, qui implémentent les modèles de croissance et de dynamique forestière intégrés, sont constitués de classes également disposées dans des packages. Les noms de ces packages suivent des conventions imposées, notamment pour la détection et le chargement automatique des modules par Capsis4.
Les packages des modules sont, comme les autres, disposés dans le répertoire capsisRoot/bin/.
Pour chaque module, l'auteur choisit entre autres au début un nom de module, qui fait office de nom de package, noté ci-après packageName.
packageName.model : contient les classes fonctionnelles du module. C'est le cas de IdCard (seule classe du module dont le nom n'est pas préfixé), xModel (x est à remplacer par le préfixe du module, ex : EptusModel),xStand, xMethodProvider,… et le cas échéant xTree, xPlot, xCell…
packageName.pilotName : contient les classes relais du module pour un pilote donné. Par exemple, pour le module eucalypt (préfixe Eptus) et le pilote gui : eucalypt.gui.EptusRelay (classe relais, implémente les contrats de GRelay), EptusDInitStand (dialogue d'acquisition des paramètres initiaux du module), EptusDInitGrowth (dialogue d'acquisition des paramètres conditionnant une phase de croissance)…
Note : un module donné peut avoir plusieurs relais correspondant a plusieurs pilotes. Il est alors utilisable dans les contextes définis par chacun de ces pilotes.
capsis.extension : classes de base des divers types d'extensions.
Ex : Extension,ExtensionStarter,ExtensionLoader, Intervener, DataExtractor, DataRenderer, StandViewer,ModelTool…
capsis.extension.extensionType : les extensions du type considéré. Ainsi par exemple, tous les visualiseurs de peuplement (StandViewer) sont dans le package capsis.extension.standviewer (i.e. pacName) ou des packages dont le nom commence par pacName. Une extension qui tient en peu de classes sera disposée directement dans pacName alors qu'une autre plus complexe aura un package personnel, par exemple pacName.view2D.
Les types d'extensions de la version 4.1 sont : intervener (mécanismes d'intervention), standviewer (visualiseurs de peuplement), dataextractor (extracteurs de données), datarenderer (mise en forme des données extraites par dataextractor), ioformat (formats d'import-export), filter (filtres pour arbres individuels ou cellules de terrain), generictool (outils génériques), modeltool (outils spécifiques à un modèle).
Ex : capsis.extension.standviewer.SVSimple (carte de peuplement spatialisé), SVText (visualisation en mode texte), capsis.extension.dataextractor.DETimeG (extraction de l'évolution de la surface terrière au cours du temps), (…).DRCurves (courbeur), FThreshold (filtre d'arbres avec seuils-plafonds sur diamètre, hauteur ou âge), GraphicalExtensionManager (contrôle des extensions disponible et de leurs compatibilité), C2Thinner (éclaircie type Capsis2), EptusInventory (format d'inventaire du module eucalypt), AMAPsim (connection avec AMAPsim pour calcul de maquettes d'arbres 3D)…
Note : toutes les composantes des noms de packages sont en minuscules exclusivement.