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<Changement> 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.