package client.model;

/** <u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de créer un triplet d'informations dont on a besoin pour l'application
 *
 * @author Dream Team - ING2
 */
public final class LienUserGroupRole {

	//Déclaration des variables
    private int[] idTab = new int[3];

    private static final int IDUSER = 0;
    private static final int IDGROUP = 1;
    private static final int IDROLE = 2;

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode est le constructeur. Il permet de créer un nouveau lien entre le triplet
     * @param idUser id de l'utilisateur
     * @param idGroup id du groupe
     * @param idRole id du rôle
     */
    public LienUserGroupRole(int idUser, int idGroup, int idRole){
        idTab[IDUSER] = idUser;
        idTab[IDGROUP] = idGroup;
        idTab[IDROLE] = idRole;
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer l'id d'un utilisateur
     * 
     * @return id de l'utilisateur
     * 
     */
    public int getIdUser(){
        return idTab[IDUSER];
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer l'id d'un groupe
     * 
     * @return id du groupe
     * 
     */
    public int getIdGroup(){
        return idTab[IDGROUP];
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer l'id d'un rôle
     * 
     * @return id du rôle
     * 
     */
    public int getIdRole(){
        return idTab[IDROLE];
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle valeur à l'id d'un utilisateur
     * 
     * @param NewIdUser du nouvel utilisateur
     * 
     */
    public void setIdUser(int NewIdUser){
        this.idTab[IDUSER] = NewIdUser;
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle valeur à l'id d'un groupe
     * 
     * @param NewIdGroup du nouveau groupe
     * 
     */
    public void setIdGroup(int NewIdGroup){
        this.idTab[IDGROUP] = NewIdGroup;
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle valeur à l'id d'un rôle
     * 
     * @param NewIdRole du nouveau rôle
     * 
     */
    public void setIdRole(int NewIdRole){
        this.idTab[IDROLE] = NewIdRole;
    }

    /**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet d'afficher le tableau avec les trois triplets
     * 
     * @return le triplet d'informations
     * 
     */
    @Override
    public String toString(){
        return "user : "+idTab[IDUSER]+" | group : "+idTab[IDGROUP]+" | role :"+idTab[IDROLE]+"\n";
    }
}
