Package API

# Interface Groupe

All Superinterfaces:
  `MonPrint`

All Known Implementing Classes:
  `GroupeNP`

public interface Groupe extends MonPrint
Un groupe

## Method Summary

Modifier and Type
Method
Description
`boolean`
`addEtudiant(Etudiant e)`
Ajoute un étudiant.
`boolean`
`addSousGroupe(Groupe g)`
Ajoute un sous-groupe.
`Set<Etudiant>`
`getEtudiants()`
Potentiellement "vide"
`int`
`getId()`
permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl).
`int`
`getMax()`
permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
`int`
`getMin()`
permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
`String`
`getName()`
permet de récupérer le nom d'un groupe (utile irl).
`Groupe`
`getPointPoint()`
permet de récupérer le groupe père un groupe racine devrait retourner lui-même
`int`
`getSize()`
permet de récupérer le nombre d'étudiants dans ce groupe.
`Set<Groupe>`
`getSousGroupes()`
Potentiellement "vide"
`TypeGroupe`
`getType()`
permet de récupérer la nature du groupe
`default String`
`monPrint()`
Fonctionne comme ToPrint() sauf car une interface n'a pas le droit de faire un override sur ToPrint().
`boolean`
`removeEtudiant(Etudiant e)`
Enlève un étudiant.
`boolean`
`removeSousGroupe(Groupe g)`
Enlève un groupe.

## Method Details

### addEtudiant

boolean addEtudiant(Etudiant e)
Ajoute un étudiant. Se comporte comme add de l'interface Set.

Returns:
  true iff e est ajouté

### removeEtudiant

boolean removeEtudiant(Etudiant e)
Enlève un étudiant. Se comporte comme remove de l'interface Set.

Returns:
  true iff e est enlevé

### addSousGroupe

boolean addSousGroupe(Groupe g)
Ajoute un sous-groupe. Se comporte comme add de l'interface Set. vérifie que le groupe passé en argument a bien renseigné this comme son père.

Returns:
  true iff g est ajouté

### removeSousGroupe

boolean removeSousGroupe(Groupe g)
Enlève un groupe. Se comporte comme remove de l'interface Set.

Returns:
  true iff e est enlevé

### getId

int getId()
permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl).

Returns:
  l'identifiant.

### getName

String getName()
permet de récupérer le nom d'un groupe (utile irl).

Returns:
  le nom.

### getMin

int getMin()
permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.

Returns:
  le minimum souhaité

### getMax

int getMax()
permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.

Returns:
  le maximum souhaité

### getSize

int getSize()
permet de récupérer le nombre d'étudiants dans ce groupe.

Returns:
  le nombre de places prises (pas forcément limité entre Min et Max, mais c'est le but)

### getType

TypeGroupe getType()
permet de récupérer la nature du groupe

Returns:
  le type du groupe

### getPointPoint

Groupe getPointPoint()
permet de récupérer le groupe père un groupe racine devrait retourner lui-même

Returns:
  le père

### getSousGroupes

Set<Groupe> getSousGroupes()
Potentiellement "vide"

Returns:
  l'ensemble des sous-groupes.

### getEtudiants

Set<Etudiant> getEtudiants()
Potentiellement "vide"

Returns:
  l'ensemble des étudiants.

### monPrint

default String monPrint()
Description copied from interface: `MonPrint`
Fonctionne comme ToPrint() sauf car une interface n'a pas le droit de faire un override sur ToPrint(). Toutes nos interfaces vont étendre cette interface.

Specified by:
  `monPrint` in interface `MonPrint`
See Also:
  - `NB. On n'utilise le mécanisme des méthodes par défaut pour donner du code dans une interface. C'est un petit peu laid et à contre-emploi mais pratique ici.

    NB2. On ne peut pas utiliser le toString de Objects https://stackoverflow.com/questions/24016962/java8-why-is-it-forbidden-to-define-a-default-method-for-a-method-from-java-lan

    `