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.