/***************************************************************/
Type Module Defaut Final TailleSegment 8
/* Objet : Type des objets correspondant aux modules. */ 
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet.  */
/*-------------------------------------------------------------*/
Prive :
	
	EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres.    					      */
/*-------------------------------------------------------------*/
Prive :
	
	NomModule : Caractere Lecture Public Trace;
	
	NumeroModule : Entier Lecture Public;
	
	Priorite : Entier Lecture Public Trace;
	
	VersionDuModule : Entier Lecture Public Trace;
	
	RevisionDuModule : Entier Lecture Public Trace;
	
	CorrectionDuModule : Entier Lecture Public Trace;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet.    					      */
/*-------------------------------------------------------------*/
Public :
	
	Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
	
	Procedure Convertir(O : Nul Ou Objet);
	
	Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
	
	Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
	
	Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
	
	Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
	
	Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
	
	Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
	
	Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
	
	Procedure SupprimerPropriete(NomPropriete : Caractere);
	
	Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Prive :
	
	Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
	
	Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Methodes propres.                       					      */
/*-------------------------------------------------------------*/
Public :
	
	Constructeur(ModuleACharger : Caractere, VersionDemandee : Entier, RevisionDemandee : Entier, CorrectionDemandee : Entier);
	
	Fonction NouvelObjet(InterfaceAImplementer : Type) Retourner Objet;
	
	Fonction Optimiser(Invariant) EnumererEnumeres(Numero : Entier, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
	
	Fonction Optimiser(Invariant) EnumererValeursEnumeres(NomEnumere : Caractere, Numero : Entier, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
	
	Fonction Optimiser(Invariant) EnumererEntrepots(Numero : Entier, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Entrepot;
	
	Fonction Optimiser(Invariant) EnumererTypes(Numero : Entier, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Type;
	
	Fonction Optimiser(Invariant) EnumererVariables(Numero : Entier, TypeVariable : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
	
	Fonction Optimiser(Invariant) EnumererExceptions(Numero : Entier, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Exception;
	
	Fonction Optimiser(Invariant) EnumererAppels(Numero : Entier, NomAppel : Nul Ou Caractere=? Sortie, Aide : Nul Ou Caractere=? Sortie) Retourner Nul Ou Appel;
	
	Procedure EcrireVariable(NomVariable : Nul Ou Caractere, ValeurVariable : Nul Ou Objet);
	
	Fonction Optimiser(Absorbant) LireVariable(NomVariable : Nul Ou Caractere) Retourner Nul Ou Objet;
	
	Fonction Optimiser(Absorbant) IncrementerDecrementerVariable(NomVariable : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
	
   Fonction Optimiser(Invariant) EnumererModulesImportes(Numero : Entier, EstOptionnel : Booleen=? Sortie, EstExtensionDe : Booleen=? Sortie) Retourner Nul Ou Caractere;
   Fonction Optimiser(Invariant) LireLibelle() Retourner Nul Ou Caractere;
Prive :
	
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Module modélise un module d'Up ! Application System. Les objets de type Module sont créés automatiquement au chargement des modules.
Le type Module ne possède pas de constructeur implicite.
Le type Module possède un constructeur à partir d'un Caractere. En ce cas, le paramètre spécifie le nom du module à charger dynamiquement si cela n'est pas encore fait. Le module doit être accessible via la variable environnement UPS_PATH. La version-révision du module est indiquée par les valeurs des paramètres VersionDemandee, RevisionDemandee et CorrectionDemandee.
Le nom du module peut comporter un accès distant introduit par l'opérateur @. En ce cas, l'opérateur doit introduire un nom d'un serveur disponible parmi les noeuds de la topologie gérée par Up ! Object Request Broker. L'objet est alors créé sur ce serveur et non en local.
Principal
/*******/
Variable
/******/
	M1 : Nul Ou Module;
	M2 : Nul Ou Module;
Debut
M1=Global;
/* Affectation entre deux modules. */ 
Si M1==M2 Alors
/* Egalité entre deux modules. */
	...
Fin Si
Si M1!=M2 Alors
/* Inégalité entre deux modules. */ 
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |