Package MNP

Class AbstractGroupeFactoryNP

    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractGroupeFactoryNP​(int id, java.lang.String name, int min, int max)
      Le constructeur fabrique le groupe promotion vide.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addToGroupe​(Groupe g, Etudiant e)
      permet d'ajouter un étudiant à un groupe.
      void createGroupe​(Groupe pere, java.lang.String name, int min, int max)
      permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.
      void createPartition​(Groupe pere, java.lang.String name, int n)
      permet de créer une partition automatiquement sous un groupe donné.
      void deleteGroupe​(Groupe g)
      permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.
      void dropFromGroupe​(Groupe g, Etudiant e)
      permet d'enlever un étudiant d'un groupe.
      java.util.Set<Etudiant> getEtudiants​(java.lang.String nomEtu)
      permet de retrouver un étudiant à partir d'un String.
      java.util.Set<Groupe> getGroupesOfEtudiant​(Etudiant etu)
      permet de retrouver les groupes d'un étudiant.
      Groupe getPromotion()
      permet de récupérer le Groupe qui contient les étudiants de toute la promotion
      java.lang.Boolean knows​(Groupe g)
      Test plutôt optimiste.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractGroupeFactoryNP

        public AbstractGroupeFactoryNP​(int id,
                                       java.lang.String name,
                                       int min,
                                       int max)
        Le constructeur fabrique le groupe promotion vide. Il faut ensuite y ajouter les étudiants.
    • Method Detail

      • knows

        public java.lang.Boolean knows​(Groupe g)
        Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe.
        Specified by:
        knows in interface AbstractGroupeFactory
      • getPromotion

        public Groupe getPromotion()
        permet de récupérer le Groupe qui contient les étudiants de toute la promotion
        Specified by:
        getPromotion in interface AbstractGroupeFactory
        Returns:
        la promo.
      • deleteGroupe

        public void deleteGroupe​(Groupe g)
        permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement.
        Specified by:
        deleteGroupe in interface AbstractGroupeFactory
        Throws:
        java.lang.NullPointerException - si un argument est null
        java.lang.IllegalStateException - si le groupe contient des groupes
        java.lang.IllegalArgumentException - si le groupe n'est pas connu de l'usine abstraite ou bien si le groupe est celui de toute la promotion (renvoyé par getPromotion)
      • createGroupe

        public void createGroupe​(Groupe pere,
                                 java.lang.String name,
                                 int min,
                                 int max)
        permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.
        Specified by:
        createGroupe in interface AbstractGroupeFactory
        Parameters:
        pere - le groupe père du groupe à créer
        name - le nom du groupe à créer
        min - ,max bornes indicatives sur la taille du groupe à créer
        Throws:
        java.lang.NullPointerException - si un argument est null
        java.lang.IllegalArgumentException - si le groupe pere est de type PARTITION ou si il n'y a pas 0 < min <= max
      • createPartition

        public void createPartition​(Groupe pere,
                                    java.lang.String name,
                                    int n)
        permet de créer une partition automatiquement sous un groupe donné.
        Specified by:
        createPartition in interface AbstractGroupeFactory
        Parameters:
        pere - le groupe père du groupe à partitionner
        name - le nom des groupe à créer (on ajoute à la suite un numéro de 1 à n pour distinguer chaque groupe formant la partition)
        n - le nombre de partitions
        Throws:
        java.lang.NullPointerException - si un argument est null
        java.lang.IllegalArgumentException - si le groupe pere est de type PARTITION ou n négatif ou nul NB. doit créer une "copie" de pere sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". les valeurs min et max de ces n groupes sont min = 0 et max = partie entière de N/n plus 1, où N est le nombre max du groupe pere.
      • addToGroupe

        public void addToGroupe​(Groupe g,
                                Etudiant e)
        permet d'ajouter un étudiant à un groupe.
        Specified by:
        addToGroupe in interface AbstractGroupeFactory
        Parameters:
        g - le groupe dans lequel il faut ajouter l'étudiant
        e - l'étudiant à ajouter
        Throws:
        java.lang.NullPointerException - si un argument est null
        java.lang.IllegalArgumentException - la factory ne connaît pas g
        java.lang.IllegalStateException - le père de g ne contient pas e
      • dropFromGroupe

        public void dropFromGroupe​(Groupe g,
                                   Etudiant e)
        permet d'enlever un étudiant d'un groupe.
        Specified by:
        dropFromGroupe in interface AbstractGroupeFactory
        Parameters:
        g - le groupe dans lequel il faut enlever l'étudiant
        e - l'étudiant à enlever
        Throws:
        java.lang.NullPointerException - si un argument est null
        java.lang.IllegalStateException - g ne contient pas e
        java.lang.IllegalArgumentException - la factory ne connaît pas g
      • getEtudiants

        public java.util.Set<Etudiant> getEtudiants​(java.lang.String nomEtu)
        permet de retrouver un étudiant à partir d'un String. NB. dans une version simple il doit s'agir du nom exact. dans une version un peu plus complexe, il s'agit des premières lettres du nom dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat.
        Specified by:
        getEtudiants in interface AbstractGroupeFactory
        Parameters:
        String - nomEtu le nom approximmatif de l'étudiant
        Returns:
        Set l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus.
        Throws:
        java.lang.NullPointerException - si le String est null.
      • getGroupesOfEtudiant

        public java.util.Set<Groupe> getGroupesOfEtudiant​(Etudiant etu)
        permet de retrouver les groupes d'un étudiant.
        Specified by:
        getGroupesOfEtudiant in interface AbstractGroupeFactory
        Parameters:
        Etu - un étudiant
        Returns:
        Etudiant l'étudiant connu de la factory ayant cet identifiant
        Throws:
        java.lang.NullPointerException - si le String est null.