/* User.java */ /** * Classe structurant un user (nick, host, Mode) */ class User implements Comparable { private String nick; private String host; private Mode leMode; public User() { leMode = new Mode(); } /** * @param telNick Nick du user à créer */ public User(String telNick) { leMode = new Mode(); nick = telNick; } /** * @param telNick Nick du user à créer * @param telStatut Statut du user à créer */ public User(String telNick, Mode.Statut telStatut) { nick = telNick; leMode = new Mode(); leMode.setStatut(telStatut); } /** * @param telNick Nick du user à créer * @param telStatut Statut du user à créer * @param telHost Host du user à créer */ public User(String telNick, Mode.Statut telStatut, String telHost) { nick = telNick; leMode.setStatut(telStatut); host = telHost; } /** * Permet de définir/redéfinir le nick du user * @param telNick Nouveau nick */ public void setNick(String telNick) { nick = telNick; } /** * Permet de définir/redéfinir l'host du user * @param telHost Nouvel host */ public void setHost(String telHost) { host = telHost; } /** * Permet de définir/redéfinir le statut du user * @param telStatut Nouveau statut */ public void setStatut(Mode.Statut telStatut) { leMode.setStatut(telStatut); } /** * Permet d'ajouter un mode au user * @param telMode Mode à ajouter au user */ public void setMode(char telMode) { leMode.set(telMode); } /** * Permet de supprimer un mode au user * @param telMode Mode à supprimer au user */ public void unsetMode(char telMode) { leMode.unset(telMode); } /** * Permet de récupérer le nick du user * @return Retourne le nick du user */ public String getNick() { return nick; } /** * Permet de récupérer l'host du user * @return Retourne l'host du user */ public String getHost() { return host; } /** * Permet de récupérer le statut du user * @return Retourne le statut du user */ public Mode.Statut getStatut() { return leMode.getStatut(); } /** * Permet de comparer deux users afin de pouvoir afficher une liste de users ordonnée * alphabétiquement et pat statut (implémentation de l'interface Comparable) * @param telUser User à comparer * @return Retourne un entier corrrespondant à la différence entre les deux users * @see Voir Channel.ajouterUser() et Collections.sort() */ public int compareTo(Object telUser) { if(((User)telUser).getStatut() != getStatut()) return ((User)telUser).getStatut().compareTo(getStatut()); else return -((User)telUser).getNick().compareToIgnoreCase(nick); } }