/**
* TableDeCorrespondance.java : interface du TA Table de correspondance
*
* Created: Thu Nov 4 15:10:15 2004
*
* @author Jean-Christophe Engel
* @version 1
*/
public interface TableDeCorrespondance {
/**
* initialise une table vide
* @param taille : taille maximale de la table
*/
// public TableDeCorrespondance(int taille);
//------------------------------------------------------------------------
// méthodes publiques de parcours
//------------------------------------------------------------------------
/**
* debut : initialise le parcours
*/
public void debut();
/**
* enFin : vrai si le parcours est terminé
* @return vrai si le parcours est terminé
*/
public boolean enFin();
/**
* cleCourante : donne la clé de l'association courante
* @pre non enFin()
* @return clé de l'association courante
*/
public TCle cleCourante();
/**
* valeurCourante : donne la valeur de l'association courante
* @pre non enFin()
* @return valeur de l'association courante
*/
public TVal valeurCourante();
/**
* avancer : passe à l'élément suivant
* @pre non enFin()
*/
public void avancer();
//
//------------------------------------------------------------------------
// méthodes publiques d'accès
//------------------------------------------------------------------------
/**
* Présent : détermine si une clé est présente
* @param cle : clé cherchée
* @return vrai si la clé est présente
*/
public boolean present(TCle cle);
/**
* Valeur : valeur associée à une clé donnée
* pré : la clé est présente
* @param cle : clé dont on veut la valeur associée
* @return valeur de l'association dont on donne la clé
*/
public TVal valeur(TCle cle);
/**
* Ajouter : ajoute une association (clé, valeur)
* laisse la table inchangée si la clé est présente ou si la table est pleine
* @param cle : clé à ajouter
* @param val : valeur associée à la clé
*/
public void ajouter(TCle cle, TVal val);
/**
* Modifier : remplace la valeur associée à une clé
* laisse la table inchangée si la clé est absente
* @param cle : clé dont on veut modifier la valeur
* @param val : nouvelle valeur associée à la clé
*/
public void modifier(TCle cle, TVal val);
/**
* Retirer : retire l'association dont la clé est donnée
* laisse la table inchangée si la clé est absente
* @param cle : clé de l'association à supprimer
*/
public void retirer(TCle cle);
}