Fred Deniger
2004-04-28
L'organisation des fichiers et le nommage des entités CORBA/IDL.
Organisation et Nommage
IDL
Organisation des dossiers
les fichiers idl doivent être placés dans un des 3 sous-répertoires
de dodico/idl . Voici la description des sous-répertoires:
Dossier | Commentaires |
general | Rassemble les modules de base utiles à tous les autres modules.
Les modifications dans ce dossier sont rares. |
metier | Les modules métiers. Ces modules décrivent un domaine et sont indépendants
des codes de calculs. |
code | Les interfaces de communications des codes de calcul sont écrits dans ce
dossier. Ces modules sont composés des structures de données et des 3 interfaces (
IParametres , IResultats et ICalcul ) utiles
à l'utilisation du code.
|
Les noms des fichiers idl sont toujours en minuscules.
Ils doivent être simples,expressifs et tous différents...
Pour les codes de calcul, ils reprennent le nom du code. Le module principal du
fichier idl doit reprendre le nom du fichier.
Préfixes des entités
Toutes les entités idl vont générer des fichiers
java dans le dossier build/java_genere . Ces fichiers
doivent être compilés dans le package org.fudaa.dodico.corba .
Voici une liste des préfixes de chaque entité utilisable dans les fichiers
idl . La colonne "exemple" illustre la correspondance entre
les entités IDL et leur utilisation dans le langage java.
Préfixe | Signification | Corba | Java | Exemples | Commentaires |
L | Liste (énumeration) | enum | Classe contenant un tableau statique des valeurs de l'énumération. |
idl:
enum LGroupeNavireType
{
PASSAGER,
FREYCINET,
PLAISANCIER,
CONVOI_POUSSE,
PERSONNALISE
};
|
java :
LGroupeNavireType.PASSAGER
|
| Liste de valeurs alternatives |
S | Structure | struct | Classe finale donnant accès aux données de la structure. |
idl:
struct SPoint
{
reel x;
reel y;
reel z;
};
|
java :
SPoint p=newSPoint();
p.x=5;
p.y=6;
p.z=7;
|
|
Une structure permettant d'organiser les données.
|
V | Vecteur | sequence | tableau 1 dimension |
idl:
typedefsequence<SPoint> VSPoint;
struct SPolyligne
{
VSPoint points;
};
|
java (création d'une polyligne):
SPoint[] ligne=new SPoint[2];
ligne[0]=p0;
ligne[1]=p1;
SPolyligne poly=newSPolyligne();
poly.points=ligne;
|
|
Le nom est trompeur: les données ne sont pas gérées comme dans un vecteur.
Vous devez utiliser une ICollection ou un ITableau
pour manipuler des tableaux dynamiquement.
|
I | Interface | interface | interface |
idl:
interface INavireType :iobjet
{ attribute chaine type;
attribute LGroupeNavireType groupeNavire;
attribute reel longueur;
attribute reel largeur;
};
|
java :
INavireType navire=
CDodico.findUsine().creeNavireType();
navire.longueur(5);
navire.largueur(6);
navire.type("passagerV1");
navire.groupeNavire(LGroupeNavireType.PASSAGER);
|
|
L'interface générée à partir de l'idl doit être implantée en java.
|
Entête type
Vous trouverez ci-dessous une entête type pour les fichiers idl. L'exemple
est pris pour le fichier geometrie.idl du dossier general .
/** * @file geometrie.idl * @creation 1998-02-18 * @modification $Date: 2004/05/05 12:36:03 $ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fudaa-devel@lists.sourceforge.net */
|
#ifndef _GEOMETRIE_IDL
#define _GEOMETRIE_IDL
|
#include "general/mathematiques.idl"
#include "general/collection.idl"
|
/** * @version $Id: nommage.xml,v 1.2 2004/05/05 12:36:03 deniger Exp $ * @author Desnoix Guillaume */
|
module geometrie
{
|
Fichiers Java
Dossiers et fichiers
Les fichiers java se trouvent tous dans le répertoire de base
dodico/src . Les dossiers de chaque projet
doit correspondre au module idl correspondant. Si vous créez un
module dans idl/code/exemple.idl , le code d'implantation se
trouvera dans le dossier
src/org/fudaa/dodico/exemple/ .
Préfixes des fichiers
En général, les classes créées sont des implantations d'interfaces
idl et sont des classes déléguées d'où le préfixe D .
Pour l'intégration d'un code de calcul, 3 classes seront créées:
DParametresExemple.java , DCalculExemple.java et
DResultatsExemple.java .
Seule la première lettre de exemple doit être en majuscule.
Pour les objets métiers, il n'y a pas de préfixe à utiliser. Les noms des
fichiers doivent être compréhensibles.
Les classes "utilitaires" du dossier objet ,
commençant par C , sont très rarement modifiées.
L'usine
L'usine (general/usine.idl et usine/DUsine.java )
est générée à partir des fichiers idl (en partie) et des fichiers java. Seules
les classes java publiques, non abstraites et ayant un constructeur publique sans argument
seront ajoutées à l'usine.
Vous devez toujours utiliser l'usine pour créer des objets corba
Afin de faciliter la génération, quelques règles doivent être suivies. Les
déclarations de classe et de constructeur doivent tenir sur une seule ligne (cf
l'exemple).
Ne pas écrire ( ces lignes seront mal interprétées ):
Utiliser l'écriture suivante:
Intégration d'un code de calcul
Pourl'intégration d'un code de calcul monCode , voici les noms
que vous devrez utiliser:
-
Créer le fichier
idl/exemple/exemple.idl,
-
Dans ce fichier: créer le module
exemple et les structures nécessaires,
-
Ecrire également les 3 interfaces
IParametresExemple ,
ICalculExemple et IResultatExemple .
-
L'implantation java: Créer le dossier
src/org/fudaa/dodico/exemple/ .
-
Dans ce dossier: remplir les 3 fichiers
DParametresExemple ,DCalculExemple et
DResultatsExemple .
|