/****************************************************************/
Type CourrierElectronique Implemente IContenuInternet Defaut Final TailleSegment 8 ConserverObjets
/* Objet : Definition d'un courrier electronique.               */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet.  */
/*-------------------------------------------------------------*/
Prive :
	
	EstInstanceDe : Type Lecture Public;
/*--------------------------------------------------------------*/
/* Proprietes héritées de IContenuInternet.                     */
/*--------------------------------------------------------------*/
Prive :
	
   SorteContenu : SorteContenuInternet Virtuel Lecture Public;
	
   EntitePrimaire : Nul Ou EntiteContenu Virtuel Lecture Public;
Public :
	
   ModeEncodage : ModeEncodageFlux Virtuel;
/*--------------------------------------------------------------*/
/* Proprietes propres.                                          */
/*--------------------------------------------------------------*/
Prive :
	
   Etat : EtatCourrier Virtuel Lecture Public;
	
   DestinataireReponse : Nul Ou Caractere Virtuel Lecture Public;
	
   DateEnvoi : Date Virtuel Lecture Public;
	
   Identifiant : Caractere Virtuel Lecture Public Trace;
	
   ObjetDuCourrier : Caractere Virtuel Lecture Public;
	
   BoiteMere : Nul Ou BoiteAuxLettresElectronique Virtuel Lecture Public;
	
   EstRecu : Booleen Virtuel Lecture Public;
	
   EstNonLu : Booleen Virtuel Lecture Public;
	
   EstUrgent : Booleen Virtuel Lecture Public;
	
   EstRepondu : Booleen Virtuel Lecture Public;
	
   EstTransfere : Booleen Virtuel Lecture Public;
	
   EstEnvoye : Booleen Virtuel Lecture Public;
	
   EstIndesirable : Booleen Virtuel Lecture Public;
/*-------------------------------------------------------------*/
/* 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;
	
	Fonction Optimiser(Invariant) Adresse() 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;
/*--------------------------------------------------------------*/
/* Méthodes héritées de IContenuInternet.                       */
/*--------------------------------------------------------------*/
Public :
	
   Fonction Habilitation ListerEntitesSecondaires(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou EntiteContenuInternet);
	
   Procedure Habilitation ModifierEntitePrimaire(E : Nul Ou EntiteContenu);
	
   Procedure Habilitation ModifierEntitePrimaire(C : Nul Ou Caractere, TypeContenu : TypeContenuInternet=ContenuTextAutre);
	
   Procedure Habilitation ModifierEntitePrimaire(F : Nul Ou IFlux, TypeContenu : TypeContenuInternet=ContenuTextAutre, ModeEncodage : ModeEncodageFlux=ModeEncodageAucun);
	
   Procedure ModifierListeDEntitesSecondaires(LE : Nul Ou ListeDe Nul Ou EntiteContenu);
/*--------------------------------------------------------------*/
/* Methodes propres.                                            */
/*--------------------------------------------------------------*/
Public :
	
   Fonction Habilitation ListerEmetteurs(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Procedure Habilitation AjouterDestinaire(Destinataire : Caractere, Copie : Booleen=Faux, Cache : Booleen=Faux);
	
   Fonction Habilitation ListerDestinataires(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Fonction Habilitation ListerDestinatairesCopie(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Fonction Habilitation ListerDestinatairesCache(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Procedure Habilitation ModifierDestinaire(DestinataireAvant : Caractere, DestinataireApres : Caractere, Copie : Booleen=Faux, Cache : Booleen=Faux);
	
   Procedure Habilitation SupprimerDestinaire(Destinataire : Caractere, Copie : Booleen=Faux, Cache : Booleen=Faux);
	
   Procedure Habilitation AjouterMotCle(MotCle : Caractere);
	
   Fonction Habilitation ListerMotsCles(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Procedure Habilitation ModifierMotCle(MotCleAvant : Caractere, MotCleApres : Caractere);
	
   Procedure Habilitation SupprimerMotCle(MotCle : Caractere);
	
   Procedure Habilitation AjouterReference(Ref : Caractere);
	
   Fonction Habilitation ListerReferences(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou Caractere;
	
   Procedure Habilitation ModifierReference(RefAvant : Caractere, RefApres : Caractere);
	
   Procedure Habilitation SupprimerReference(Ref : Caractere);
	
   Procedure Habilitation ChangerEtat(E : EtatCourrier);
	
   Fonction Habilitation Transferer(Destinataire : Caractere, AdresseElectronique : Nul Ou Caractere=Nul) Retourner Nul Ou CourrierElectronique;
	
   Fonction Habilitation Repondre(AdresseElectronique : Nul Ou Caractere=Nul) Retourner Nul Ou CourrierElectronique;
	
   Procedure Habilitation Supprimer();
	
   Procedure Habilitation ChangerEtatNonLu(E : Booleen);
	
   Procedure Habilitation ChangerEtatUrgent(E : Booleen);
	
   Procedure Habilitation ChangerEtatIndesirable(E : Booleen);
	
   Procedure Habilitation Deplacer(NomRepertoire : Nul Ou Caractere);
	
   Procedure Habilitation Exporter(NomFichier : Nul Ou Caractere);
	
   Procedure Habilitation Copier(NomRepertoire : Nul Ou Caractere);
	
   Procedure Habilitation ChangerEtatTransfere(E : Booleen);
Prive :
	
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type CourrierElectronique modélise un courrier électronique réceptionné ou à émettre.
Variable
/******/
	CourrierPatient : Nul Ou CourrierElectronique;
	CourrierProspect : Nul Ou CourrierElectronique;
Principal
/*******/
Debut
...
Si CourrierPatient==CourrierProspect Alors
/* Egalité entre deux courriers electroniques. */
	...
Fin Si
Si CourrierPatient!=CourrierProspect Alors
/* Inégalité entre deux courriers electroniques. */
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |