Package MNP

# Class GroupeNP

java.lang.Object
MNP.GroupeNP

All Implemented Interfaces:
  `Groupe`, `MonPrint`

public class GroupeNP extends Object implements Groupe
Un groupe

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GroupeNP(int id, String name, int min, int max)`
  Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe
  `GroupeNP(Groupe pere)`
  Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre).
  `GroupeNP(Groupe pere, String name, int min, int max)`
  Nouveau groupe vide de type FREE sans étudiants, sans sous-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" Attention nous renvoyons l'ensemble sans le copier
  `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" Attention nous renvoyons l'ensemble sans le copier
  `TypeGroupe`
  `getType()`
  permet de récupérer la nature du groupe
  `boolean`
  `removeEtudiant(Etudiant e)`
  Enlève un étudiant.
  `boolean`
  `removeSousGroupe(Groupe g)`
  Enlève un groupe.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface API.Groupe

  `monPrint`

- ## Constructor Details

  - ### GroupeNP

    public GroupeNP(int id, String name, int min, int max)
    Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe

  - ### GroupeNP

    public GroupeNP(Groupe pere, String name, int min, int max)
    Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe

  - ### GroupeNP

    public GroupeNP(Groupe pere)
    Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre).

- ## Method Details

  - ### addEtudiant

    public boolean addEtudiant(Etudiant e)
    Ajoute un étudiant. Se comporte comme add de l'interface Set.
    Specified by:
      `addEtudiant` in interface `Groupe`
    Returns:
      true iff e est ajouté

  - ### removeEtudiant

    public boolean removeEtudiant(Etudiant e)
    Enlève un étudiant. Se comporte comme remove de l'interface Set.
    Specified by:
      `removeEtudiant` in interface `Groupe`
    Returns:
      true iff e est enlevé

  - ### addSousGroupe

    public 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.
    Specified by:
      `addSousGroupe` in interface `Groupe`
    Returns:
      true iff g est ajouté

  - ### removeSousGroupe

    public boolean removeSousGroupe(Groupe g)
    Enlève un groupe. Se comporte comme remove de l'interface Set.
    Specified by:
      `removeSousGroupe` in interface `Groupe`
    Returns:
      true iff e est enlevé

  - ### getId

    public int getId()
    permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl).
    Specified by:
      `getId` in interface `Groupe`
    Returns:
      l'identifiant.

  - ### getName

    public String getName()
    permet de récupérer le nom d'un groupe (utile irl).
    Specified by:
      `getName` in interface `Groupe`
    Returns:
      le nom.

  - ### getMin

    public int getMin()
    permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
    Specified by:
      `getMin` in interface `Groupe`
    Returns:
      le minimum souhaité

  - ### getMax

    public int getMax()
    permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
    Specified by:
      `getMax` in interface `Groupe`
    Returns:
      le maximum souhaité

  - ### getSize

    public int getSize()
    permet de récupérer le nombre d'étudiants dans ce groupe.
    Specified by:
      `getSize` in interface `Groupe`
    Returns:
      le nombre de places prises (pas forcément limité entre Min et Max, mais c'est le but)

  - ### getType

    public TypeGroupe getType()
    permet de récupérer la nature du groupe
    Specified by:
      `getType` in interface `Groupe`
    Returns:
      le type du groupe

  - ### getPointPoint

    public Groupe getPointPoint()
    permet de récupérer le groupe père un groupe racine devrait retourner lui-même
    Specified by:
      `getPointPoint` in interface `Groupe`
    Returns:
      le père

  - ### getSousGroupes

    public Set<Groupe> getSousGroupes()
    Potentiellement "vide" Attention nous renvoyons l'ensemble sans le copier
    Specified by:
      `getSousGroupes` in interface `Groupe`
    Returns:
      l'ensemble des sous-groupes.

  - ### getEtudiants

    public Set<Etudiant> getEtudiants()
    Potentiellement "vide" Attention nous renvoyons l'ensemble sans le copier
    Specified by:
      `getEtudiants` in interface `Groupe`
    Returns:
      l'ensemble des étudiants.