Package API

# Interface AbstractChangementFactory

All Known Implementing Classes:
  `AbstractChangementFactoryNP`

public interface AbstractChangementFactory
Usine abstraite gérant l'ensemble des changements.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `applyChangement(Changement c)`
  permet de mettre en oeuvre un changement connu de l'usine abstraite.
  `void`
  `createChangement(Groupe A, Etudiant e, Groupe B)`
  permet d'ajouter un nouveau changement.
  `void`
  `deleteChangement(Changement c)`
  permet de supprimer un changement connu de l'usine abstraite.
  `Set<Changement>`
  `getAllChangements()`
  permet de récupérer les changements
  `AbstractGroupeFactory`
  `getGroupeFactory()`
  permet de récupérer une usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite

- ## Method Details

  - ### getGroupeFactory

    AbstractGroupeFactory getGroupeFactory()
    permet de récupérer une usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite
    Returns:
      cette usine abstraite pour les groupes

  - ### getAllChangements

    Set<Changement> getAllChangements()
    permet de récupérer les changements
    Returns:
      l'ensemble de tous les changements en attente

      NB. Attention. C'était Iterator dans la version beta.

  - ### applyChangement

    void applyChangement(Changement c)
    permet de mettre en oeuvre un changement connu de l'usine abstraite. En cas de succès, le changement est oublié (détruit).
    Throws:
      `NullPointerException` - si un argument est null
      `IllegalArgumentException` - si inconnu de l'usine abstraite

  - ### deleteChangement

    void deleteChangement(Changement c)
    permet de supprimer un changement connu de l'usine abstraite.
    Throws:
      `NullPointerException` - si un argument est null
      `IllegalArgumentException` - si inconnu de l'usine abstraite

  - ### createChangement

    void createChangement(Groupe A, Etudiant e, Groupe B)
    permet d'ajouter un nouveau changement.
    Parameters:
      `A` - groupe actuel
      `B` - groupe demandé
      `e` - étudiant concerné par le changement
    Throws:
      `NullPointerException` - si un argument est null
      `IllegalArgumentException` - si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes.