Package avis

Source Code of avis.ItemRecherche

package avis;

import java.util.LinkedList;

import exception.BadEntry;
import exception.ItemFilmAlreadyExists;
import exception.ItemBookAlreadyExists;
import exception.MemberAlreadyExists;
import exception.NotItem;
import exception.NotMember;
import exception.NotAvis;

/**
* @author A. Beugnard,
* @author G. Ouvradou
* @author B. Prou
* @date février - mars 2011
* @version V0.6
*/


/**
* <p>
* <b>Système de mutualisation d'opinions portant sur des domaines
* variés (littérature, cinéma, art, gastronomie, etc.) et non limités.</b>
* </p>
* <p>
* L'accès aux items et aux opinions qui leurs sont associées
* est public. La création d'item et le dépôt d'opinion nécessite en revanche
* que l'utilisateur crée son profil au préalable.
* </p>
* <p>
* Dans une version avancée (version 2), une opinion peut également
* être évaluée. Chaque membre se voit dans cette version décerner un "karma" qui mesure
* la moyenne des notes portant sur les opinions qu'il a émises.
* L'impact des opinions entrant dans le calcul de la note moyenne attribuée à un item
* est pondéré par le karma des membres qui les émettent.
* </p>
*/

/**
* @author Quentin
*
*/

public class SocialNetwork {

 
  private LinkedList<Member> listeMembre = new LinkedList<Member>();
  private LinkedList<Film> listeFilms = new LinkedList<Film>();
  private LinkedList<Book> listeBooks = new LinkedList<Book>();

  /**
   * constructeur de <i>SocialNetwok</i>
   *
   */

  public SocialNetwork() {
   
  }

  /**
   * Obtenir le nombre de membres du <i>SocialNetwork</i>
   *
   * @return le nombre de membres
   */
  public int nbMembers() {
    return listeMembre.size();
  }

  /**
   * Obtenir le nombre de films du <i>SocialNetwork</i>
   *
   * @return le nombre de films
   */
  public int nbFilms() {
    return listeFilms.size();
  }

  /**
   * Obtenir le nombre de livres du <i>SocialNetwork</i>
   *
   * @return le nombre de livres
   */
  public int nbBooks() {
    return listeBooks.size();
  }


  /**
   * Ajouter un nouveau membre au <i>SocialNetwork</i>
   *
   * @param pseudo son pseudo
   * @param password son mot de passe
   * @param profil son profil
   *
   * @throws BadEntry :
   * <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le profil n'est pas instancié.  </li>
   * </ul><br>      
   *
   * @throws MemberAlreadyExists membre de même pseudo déjà présent dans le <i>SocialNetwork</i> (même pseudo : indifférent à  la casse  et aux leadings et trailings blanks)
   *
   */
  public void addMember(String pseudo, String password, String profil) throws BadEntry, MemberAlreadyExists  {
     
      //Test sur les paramètres :
      if(pseudo == null || password == null || profil == null){
        throw new BadEntry("Parametre non instancié");
      }
     
      if(pseudo.trim().length()==0) throw new BadEntry("Pseudo contenant que des espaces");
     
      if(password.trim().length()<4) throw new BadEntry("Password contenant pas assez de caractères");
       
      //Recherche si le membre existe ou pas
      if(this.getMember(pseudo)!=null) throw new MemberAlreadyExists();
     
      listeMembre.add(new Member(pseudo,password,profil));
  }


  /**
   * Ajouter un nouvel item de film au <i>SocialNetwork</i>
   *
   * @param pseudo le pseudo du membre
   * @param password le password du membre
   * @param titre le titre du film
   * @param genre son genre (aventure, policier, etc.)
   * @param realisateur le réalisateur
   * @param scenariste le scénariste
   * @param duree sa durée en minutes
   *
   * @throws BadEntry :
   * <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   <li>  si le genre n'est pas instancié. </li>
   <li>  si le réalisateur n'est pas instancié. </li>
   <li>  si le scénariste n'est pas instancié. </li>
   <li>  si la durée n'est pas positive.  </li>
   * </ul><br>      
   * @throws NotMember : si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws ItemFilmAlreadyExists : item film de même titre  déjà présent (même titre : indifférent à  la casse  et aux leadings et trailings blanks)
   *
   */
  public void addItemFilm(String pseudo, String password, String titre, String genre, String realisateur, String scenariste, int duree) throws BadEntry, NotMember, ItemFilmAlreadyExists {
   
    //Test sur les paramètres
    if(pseudo == null || password == null || titre== null || genre ==  null || realisateur == null || scenariste == null || duree <= 0){
      throw new BadEntry("Parametre non instancié");
    }
   
    if(pseudo.trim().length()==0 || titre.trim().length()==0) throw new BadEntry("Pseudo contenant que des espaces");
   
    if(password.trim().length()<4) throw new BadEntry("Password contenant pas assez de caractères")
   
    //Si un probleme, l'exception NotMember est levée, et l'exécution est interrompue
    verifieUtilisateur(pseudo, password);

    //Si le film existe déja, on leve l'exception ItemFilmAlreadyExists
    if(this.getFilm(titre)!=null) throw new ItemFilmAlreadyExists();
   
    //Ajout du film
    listeFilms.add(new Film(titre, genre, duree, realisateur, scenariste));
  }
 
 
 

  /**
   * Ajouter un nouvel item de livre au <i>SocialNetwork</i>
   *
   * @param pseudo le pseudo du membre
   * @param password le password du membre
   * @param titre le titre du livre
   * @param genre son genre (roman, essai, etc.)
   * @param auteur l'auteur
   * @param nbPages le nombre de pages
   *
   * @throws BadEntry :
   * <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   <li>  si le genre n'est pas instancié. </li>
   <li>  si l'auteur n'est pas instancié. </li>
   <li>  si le nombre de pages n'est pas positif.  </li>
   * </ul><br>      
   * @throws NotMember : si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws ItemBookAlreadyExists item livre de même titre  déjà présent (même titre : indifférent à la casse  et aux leadings et trailings blanks)
   *
   *
   */
  public void addItemBook(String pseudo, String password, String titre, String genre, String auteur, int nbPages) throws  BadEntry, NotMember, ItemBookAlreadyExists{
   
    //Test sur les paramètres
    if(pseudo == null || password == null || titre== null || genre ==  null || auteur == null || nbPages <= 0){
      throw new BadEntry("Parametre non instancié");
    }
   
    if(pseudo.trim().length()==0 || titre.trim().length()==0) throw new BadEntry("Pseudo contenant que des espaces");
   
    if(password.trim().length()<4) throw new BadEntry("Password contenant pas assez de caractères")
   
   
    //Si un probleme, l'exception NotMember est levée, et l'exécution est interrompue
    verifieUtilisateur(pseudo, password);
   
    //Si le livre existe déja, on leve l'exception ItemBookAlreadyExists
    if(this.getBook(titre)!=null) throw new ItemBookAlreadyExists();
           
    //Ajout du livre
    listeBooks.add(new Book(genre, titre, auteur, nbPages));
 
  }

  /**
   * Consulter les items du <i>SocialNetwork</i> par nom
   *
   * @param nom son nom (eg. titre d'un film, d'un livre, etc.)
   *
   * @throws BadEntry : si le nom n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   *
   * @return LinkedList <String> : la liste des représentations de tous les items ayant ce nom
   * (une liste vide si aucun item ne correspond)
   */
  public LinkedList <String> consultItems(String nom) throws BadEntry {
    LinkedList<String> listeItems = new LinkedList<String>();
   
    if ((nom==null)||(nom.trim().length()==0)){
      throw new BadEntry("Le nom n'est pas instancié ou a moins de 1 caractère autre que des espaces");
    }
   
    for (Film f : listeFilms){
      if (f.isTitre(nom)){
        listeItems.addLast(f.toString());
      }
    }
   
    for (Book b : listeBooks){
      if (b.isTitre(nom)){
        listeItems.addLast(b.toString());
      }
    }
   
    return listeItems;
  }



  /**
   * Donner son opinion sur un item film.
   * Ajoute l'opinion de ce membre sur ce film au <i>SocialNetwork</i>
   * Si une opinion de ce membre sur ce film  préexiste, elle est mise à jour avec ces nouvelles valeurs.
   *
   * @param pseudo pseudo du membre émettant l'opinion
   * @param password son mot de passe
   * @param titre titre du film  concerné
   * @param note la note qu'il donne au film
   * @param commentaire ses commentaires
   *
   * @throws BadEntry :
   * <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   <li>  si la note est négative. </li>
   <li>  si le commentaire n'est pas instancié. </li>
   * </ul><br>      
   * @throws NotMember : si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws NotItem : si le titre n'est pas le titre d'un film.
   *
   * @return la note du film 
   */
  public float reviewItemFilm(String pseudo, String password, String titre, float note, String commentaire) throws BadEntry, NotMember, NotItem {
   
    boolean avisExiste = false;
    Film film = null;

   
    // Recherche d'erreur BadEntry
    this.verifieParametreReviewItem(pseudo, password, titre, note, commentaire);
   
    // Recherche d'erreur NotMember
    this.verifieUtilisateur(pseudo, password);
       
    // Recherche d'erreur NotItem
    if((film=this.getFilm(titre))==null) throw new NotItem("Le titre n'est pas le titre d'un film");
   
   
    // Vérification de la pré-existence d'un commentaire du même auteur
    for(Avis a : film.getListeAvis()){
      if(a.getAuteur().isExist(pseudo)){
        avisExiste = true;
        a.setNote(note);
        a.setCommentaire(commentaire);
        break;
      }     
    }
   
    // Traitement du cas normal
    if (avisExiste == false) film.addAvis(new AvisItem(getMember(pseudo),commentaire,note));
       
    return film.getMoyenne();
    //
  }



  /**
   * Donner son opinion sur un item livre.
   * Ajoute l'opinion de ce membre sur ce livre au <i>SocialNetwork</i>
   * Si une opinion de ce membre sur ce livre  préexiste, elle est mise à jour avec ces nouvelles valeurs.
   *
   * @param pseudo pseudo du membre émettant l'opinion
   * @param password son mot de passe
   * @param titre titre du livre  concerné
   * @param note la note qu'il donne au livre
   * @param commentaire ses commentaires
   *
   * @throws BadEntry :
   * <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   <li>  si la note est négative. </li>
   <li>  si le commentaire n'est pas instancié. </li>
   * </ul><br>      
   * @throws NotMember : si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws NotItem : si le titre n'est pas le titre d'un livre.
   *
   * @return la note du livre
   */
  public float reviewItemBook(String pseudo, String password, String titre, float note, String commentaire) throws BadEntry, NotMember, NotItem {
    boolean avisExiste = false;
    Book book = null;

   
    // Recherche d'erreur BadEntry
    this.verifieParametreReviewItem(pseudo, password, titre, note, commentaire);
   
    // Recherche d'erreur NotMember
    this.verifieUtilisateur(pseudo, password);
       
    // Recherche d'erreur NotItem
    if((book=this.getBook(titre))==null) throw new NotItem("Le titre n'est pas le titre d'un livre");
   
    // Vérification de la pré-existence d'un commentaire du même auteur
    for(Avis a : book.getListeAvis()){
      if(a.getAuteur().isExist(pseudo)){
        avisExiste = true;
        a.setNote(note);
        a.setCommentaire(commentaire);
        break;
      }     
    }
   
    // Traitement du cas normal
    if (avisExiste == false) book.addAvis(new AvisItem(getMember(pseudo),commentaire,note));
   
    return book.getMoyenne()
  }
 
 
 
  /**
   * Donner une opinion sur un avis existant (avis sur un livre)
   * @param titre titre du film
   * @param auteur auteur du film
   * @param pseudo pseudo du membre
   * @param password mot de passe du membre
   * @param commentaire les commentaires
   * @param note la note attribuée
   * @return
   * @throws NotItem si le titre n'est pas le titre d'un film
   * @throws NotMember: si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws NotAvis si l'avis n'existe pas
   * @throws BadEntry
   * <ul>
   * <li> si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces
   * <li> si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks
   * <li> si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces
   * <li> si la note est négative
   * <li> si le commentaire ou l'auteur ne sont pas instancié
   *  </ul><br>
   */
  public float reviewOpinionFilm (String titre, String auteur, String pseudo, String password, String commentaire, float note) throws NotItem, NotMember,NotAvis,BadEntry{
    //Variable interne
    Film film = null;
    AvisItem avis = null;
   
   
    // Recherche d'erreur BadEntry
    this.verifieParametreReviewOpinion(pseudo, password, titre, note, commentaire, auteur);
   
    //Si un probleme, l'exception NotMember est levée, et l'exécution est interrompue
    this.verifieUtilisateur(pseudo, password);

    //On recupere le film si il existe, sinon on leve l'exception NotItem
    if((film = this.getFilm(titre))==null) throw new NotItem("film inexistant");
   
    //On vérifie que l'auteur existe, sinon on leve l'exception NotMember
    if(this.getMember(auteur)==null) throw new NotMember("Auteur inexistant");

   
    //On recupere l'avis que l'auteur à posté sur le film si il existe, sinon on leve l'exception NotAvis
    for(AvisItem a : film.getListeAvis())
      if(a.isAuteur(auteur))
        avis = a;
     
    if(avis == null) throw new NotAvis("Avis inexistant"+"\n"+auteur+film)
 
   
   
    // Ajout de l'avis et retour de la moyenne
    avis.addAvis(getMember(pseudo), note, commentaire);
    updateKarma(auteur);
    return avis.getMoyenne();
  }
 
 

  /**
   * Donner une opinion sur un avis existant (avis sur un film)
   * @param titre Titre du livre
   * @param auteur Auteur de l'avis sur le livre
   * @param pseudo pseudo du membre
   * @param password mot de passe du membre
   * @param commentaire les commentaires
   * @param note la note attribuée
   * @return la moyenne des avis
   * @throws NotItem si le titre n'est pas le titre d'un livre.
   * @throws NotMember
   * @throws NotAvis
   * @throws BadEntry
   *  <ul>
   <li>  si le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces .  </li>
   <li>  si le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks. </li>
   <li>  si le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces.  </li>
   <li>  si la note est négative. </li>
   <li>  si le commentaire n'est pas instancié. </li>
   * </ul><br>      
   * @throws NotMember : si le pseudo n'est pas celui d'un membre ou si le pseudo et le password ne correspondent pas.
   * @throws NotItem : si le titre n'est pas le titre d'un film.
   */
  public float reviewOpinionBook (String titre, String auteur, String pseudo, String password, String commentaire, float note) throws NotItem, NotMember,NotAvis,BadEntry{
    //Variable interne
    Book book = null;
    AvisItem avis = null;   

    // Recherche d'erreur BadEntry
    this.verifieParametreReviewOpinion(pseudo, password, titre, note, commentaire, auteur);
   
    //Si un probleme, l'exception NotMember est levée, et l'exécution est interrompue
    this.verifieUtilisateur(pseudo, password);

    //On recupere le film si il existe, sinon on leve l'exception NotItem
    if((book = this.getBook(titre))==null) throw new NotItem("livre inexistant");
   
    //On vérifie que l'auteur existe, sinon on leve l'exception NotMember
    if(this.getMember(auteur)==null) throw new NotMember("Auteur inexistant");

   
    //On recupere l'avis que l'auteur à posté sur le film si il existe, sinon on leve l'exception NotAvis
    for(AvisItem a : book.getListeAvis())
      if(a.isAuteur(auteur))
        avis = a;
     
    if(avis == null) throw new NotAvis("Avis inexistant"+"\n"+auteur+book)
 
   
   
    // Ajout de l'avis et retour de la moyenne
    avis.addAvis(getMember(pseudo), note, commentaire);
    updateKarma(auteur);
    return avis.getMoyenne();
  }
 
  /**calcule / met à jour le karma d'un membre
   * @param pseudo pseudo du membre
   */
  private void updateKarma(String pseudo){

    // recherche du membre
    Member membre = this.getMember(pseudo);
   
    int nbAvis = 0;
    float somme = 0;
   
    // recherche des avis de l'auteur dans itemsFilm
    for(Film f : listeFilms)
      for(AvisItem a : f.getListeAvis())
        if(a.isAuteur(pseudo))
          if(a.getMoyenne()!=-1){
            somme += a.getMoyenne();
            nbAvis++;
          }
       
    // recherche des avis de l'auteur dans itemsBook
    for(Book b : listeBooks)
      for(AvisItem a : b.getListeAvis())
        if(a.isAuteur(pseudo))
          if(a.getMoyenne()!=-1){
            somme += a.getMoyenne();
            nbAvis++;
          }
   
   
    if (nbAvis==0) membre.setKarma(2.5f); //Valeur par defaut du karma si aucun avis
    else membre.setKarma(somme/nbAvis);
   
  }
 
  /**
   * Recherche dans la liste des livres et des films l'ensemble des items correspondant à la chaine de caractère rentrée en paramètre
   *
   * @param titre
   * @return Liste des items classé par pertinence
   */
  public LinkedList<Item> rechercher(String titre){
    //Création d'un objet ayant deux attributs : Item et Occurence
    class ItemRecherche{
      public Item item;
      public int occurence=1;
     
      public ItemRecherche(Item i){
        this.item = i;
      }
    }
   
    boolean dejaPresent = false;
   
    //Liste qui contient tous les items qui ont au moins un mot de la phrase de recherche
    //Si un items contient plusieurs mot de la phrase de recherche, l'attribut occurence de ItemRecherche est augmenté en concéquence
    LinkedList<ItemRecherche> listeResultatFinalAvecOccurence = new LinkedList<ItemRecherche>();
   
    //Liste qui contient tous les items correspondant à la recherche classé par pertinence (A l'aide du champs occurence)
    LinkedList<Item> listeResultatFinal = new LinkedList<Item>();
   
    //On decoupe la phrase de recherche en mot -> Ex : [Harry Potter] devient [Harry] [Potter]
    String[] mot = titre.toLowerCase().split(" ");
   
    //Pour chaque mot
    for(int i=0;i<mot.length;i++){
      if(!mot.equals(" "))//Si le mot est autre qu'un espace
        //On parcours tous les livres
        for(Book b : listeBooks){
          //Si le mot est présent dans le titre
          if((b.getTitre().toLowerCase().indexOf(mot[i]))>=0){
            dejaPresent = false;
            //On recherche si on a deja trouver l'objet avec un autre mot de notre recherche
            for(ItemRecherche item : listeResultatFinalAvecOccurence)
              //Si il existe, on augment le nombre d'occurence
              if(b.equals(item.item)){
                dejaPresent = true;
                item.occurence++;
                break;
              }
            //Si il n'existe pas, on ajoute l'item dans le liste
            if(dejaPresent == false) listeResultatFinalAvecOccurence.add(new ItemRecherche(b));
          }
        }
        for(Film f : listeFilms){
          if((f.getTitre().toLowerCase().indexOf(mot[i]))>=0){
            dejaPresent = false;
            for(ItemRecherche item : listeResultatFinalAvecOccurence)
              if(f.equals(item.item)){
                dejaPresent = true;
                item.occurence++;
                break;
              }
            if(dejaPresent == false) listeResultatFinalAvecOccurence.add(new ItemRecherche(f));
          }
        }
    }
   
   
    int max = 0;    //valeur max de l'occurence de la liste
    int indiceMax = 0; //indice du max
    int i = 0; //Position courante dans la liste lors du parcours du for
   
    //Tant qu'il y a des items dans la liste, on cherche le maximum des items restant
    while(listeResultatFinalAvecOccurence.size()>0){
     
      //On parcours toute la liste listeResultatFinalAvecOccurence pour chercher l'occurence maximum
      for(ItemRecherche iRecherche : listeResultatFinalAvecOccurence){
        //Si il devient la maximum
        if(iRecherche.occurence>max){
          indiceMax=i;
          max = iRecherche.occurence;
        }
        i++;
     
      //On ajoute l'item dans listeResultatFinal
      listeResultatFinal.add(listeResultatFinalAvecOccurence.get(indiceMax).item);
     
      //On supprime ensuite l'objet de la listeResultatFinalAvecOccurence
      listeResultatFinalAvecOccurence.remove(indiceMax);
     
      //Réinit des valeurs
      i=0;
      max=0;
    }
   
   
    return listeResultatFinal;
  }
 
  /**
   * Obtenir une représentation textuelle du <i>SocialNetwork</i>.
   *
   * @return la chaîne de caractères représentation textuelle du <i>SocialNetwork</i>
   */
  public String toString() {
    String s = null;
   
    s = "Représentation textuelle du SocialNetwork :\n";
   
    s += "\nListe des films :\n";
   
    for (Film f : listeFilms){
      s += f.toString();
    }
   
    s += "\nListe des livres :\n";
   
    for (Book b : listeBooks){
      s += b.toString();
    }
   
    s += "\nListe des membres :\n";
   
    for (Member m : listeMembre){
      s += "\n"+m.toString();
    }
   
    return s;
  }
 
 
  /**
   * Vérifie si l'utilisateur existe puis si le mdp et le pseudo coïnside
   * @param pseudo
   * @param password
   * @throws NotMember
   */
  private void verifieUtilisateur(String pseudo,String password) throws NotMember{
    boolean memberExist = false;
    for(Member m : listeMembre){
      if(m.isExist(pseudo)){
        memberExist = true;
        //Test si le password n'est pas celui d'un membre
        if(!m.authentifier(pseudo, password)) throw new NotMember ("mot de passe incorrect");
        break;
      }
    }   
   
    if (memberExist == false) throw new NotMember("Utilisateur inexistant");
  }

  /**
   * Retourne l'objet membre à partir de son pseudo si il existe
   *
   * @param pseudo
   * @return Objet membre si il existe, null sinon
   */
  private Member getMember(String pseudo) {
    for(Member m : listeMembre)
      if(m.isExist(pseudo))
        return m;
 
    return null;
  }
 
  /**
   * Retourne l'objet Film à partir de son titre si il existe
   * @param titre
   * @return Objet film si il existe, null sinon
   */
  private Film getFilm(String titre){
    for (Film f : listeFilms)
      if(f.isTitre(titre))
        return f;
           
    return null;
  }
 
  /**
   * Retourne l'objet Book à partir de son titre si il existe
   * @param titre
   * @return Objet titre si il existe, null sinon
   */
  private Book getBook(String titre){
    for (Book b : listeBooks)
      if(b.isTitre(titre))
        return b;
           
    return null;
  }

  /**
   * Vérifie la conformité des paramètres des fonctions ReviewOpinion*****
   * @param pseudo Pseudo du membre
   * @param password Mot de passe du membre
   * @param titre Titre de l'item
   * @param note Note de l'avis sur l'avis
   * @param commentaire Commentaire sur l'avis
   * @param auteur Auteur de l'avis
   * @throws BadEntry
   */
  private void verifieParametreReviewOpinion(String pseudo, String password, String titre, float note, String commentaire, String auteur) throws BadEntry{
    if ((pseudo==null)||(pseudo.trim().length()==0)){
      throw new BadEntry("Le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces");
    }
    if ((password==null)||(password.trim().length()<4)){
      throw new BadEntry("Le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks");
    }
    if ((titre==null)||(titre.trim().length()==0)){
      throw new BadEntry("Le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces");
    }
    if (note<0){
      throw new BadEntry("La note est négative");
    }
    if (commentaire==null){
      throw new BadEntry("Le commentaire n'est pas instancié");
    }
    if (auteur==null||(auteur.trim().length()==0)){
      throw new BadEntry("L'auteur n'est pas instancié");
    }
  }
 
  /**
   * Vérifie la conformité des paramètres des fonctions ReviewItem*****
   * @param pseudo Pseudo du membre
   * @param password Mot de passe du membre
   * @param titre Titre de l'item
   * @param note Note de l'avis
   * @param commentaire Commentaire sur l'item
   * @throws BadEntry
   */
  private void verifieParametreReviewItem(String pseudo, String password, String titre, float note, String commentaire) throws BadEntry{
   
    if ((pseudo==null)||(pseudo.trim().length()==0)){
      throw new BadEntry("Le pseudo n'est pas instancié ou a moins de 1 caractère autre que des espaces");
    }
    if ((password==null)||(password.trim().length()<4)){
      throw new BadEntry("Le password n'est pas instancié ou a moins de 4 caractères, autre que des leadings or trailing blanks");
    }
    if ((titre==null)||(titre.trim().length()==0)){
      throw new BadEntry("Le titre n'est pas instancié ou a moins de 1 caractère autre que des espaces");
    }
    if (note<0){
      throw new BadEntry("La note est négative");
    }
    if (commentaire==null){
      throw new BadEntry("Le commentaire n'est pas instancié");
    }
  }
}
TOP

Related Classes of avis.ItemRecherche

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.