/****************************************************************/
Interface IIterateur(TypeElement : Type) Defaut Final TailleSegment 8 ConserverObjets
/* Objet : Definition du type IIterateur. */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type 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;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) ParcoursAuDebut(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) ParcoursALaFin(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) ParcoursAuMilieu(Position : Nul Ou Entier, NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Suivant(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Precedent(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) PremierElement() Retourner Nul Ou TypeElement;
Fonction Optimiser(Invariant) DernierElement() Retourner Nul Ou TypeElement;
Fonction NumeroElement(NumeroIterateur : Entier=0) Retourner Nul Ou Entier;
Fonction Element(NumeroIterateur : Entier=0) Retourner Nul Ou TypeElement;
Fonction AllouerIterateur() Retourner Entier;
Procedure LibererIterateur(NumeroIterateur : Entier);
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Interface
L'interface IIterateur ne possède pas de constructeur explicite.
Les itérateurs sont notamment utilisés par les types mettant en oeuvre l'interface ICollection. L'interface IIterateur est paramétrée par le type TypeElement correspondant au type d'élément de la collection.
Chaque objet du type IIterateur possède des moteurs d'itérations permettant de parcourir ses éléments. Les itérateurs sont numérotés de 0 à n, 0 étant l'itérateur implicite qui n'a pas besoin d'être alloué par l'appel à AllouerIterateur. Chaque itérateur alloué, une fois utilisé, doit être libéré par l'appel LibererIterateur.
Principal
/*******/
Variable
/******/
L : ListeDe Caractere;
C : Caractere;
Debut
...
/* Parcours de la liste incorporant un iterateur. */
Pour C=L.ParcoursAuDebut() JusquA L.DernierElement() Faire
Ecran.Ecrire(C);
Fin Pour
Fin Principal
- | - | - | - | - | - | - | - | - |