Class Database

java.lang.Object
fr.tse.fise2.pip.Database.Database

public class Database
extends java.lang.Object
Classe permettant de creer des tables dans une Base De Donnees et d'effectuer des requetes
Author:
Yammine Eric et Solane Alexandre
  • Constructor Summary

    Constructors 
    Constructor Description
    Database()
    Methode permettant de construire 3 tables dans notre Base de Donnes avec leurs champs
  • Method Summary

    Modifier and Type Method Description
    void addFavourites​(java.lang.String search, Session session)
    Methode permettant d'ajouter un favoris au compte lorsque l'utilisateur est connecte a ce compte
    void addHobbies​(java.lang.String nameToAdd, java.lang.String listHashtagsAndUsersToAdd, Session session)
    Methode permettant d'ajouter un point d'interet a son compte connecte
    void changePassword​(java.lang.String formerPassword, java.lang.String passwordToUpdate, Session session)  
    void connect()
    Methode permettant de se connecter au driver de HSQLDB afin de pouvoir creer une Base De Donnees (BDD) en local
    java.util.ArrayList<java.lang.String> displayFavourites​(Session session)
    Methode permettant de selectionner tous les favoris dans la table pour l'utilisateur connecte afin de les afficher sur l'onglet favoris
    java.util.ArrayList<java.util.ArrayList<java.lang.String>> displayHobbies​(Session session)
    Methode permettant de selectionner tous les points d'interets pour un utilisateur connecte
    boolean isFavouritedBy​(java.lang.String search, Session session)
    Methode permettant de savoir si une recherche est deja un favoris
    boolean isHobbyBy​(java.lang.String nameToCheck, Session session)
    Methode permettant de savoir si un point d'interet avec le nom rentre en paramtre existe dj pour l'utilisateur connect
    boolean loginAccount​(java.lang.String usernameToCheck, java.lang.String passwordToCheck, Session session)
    Methode permettant de connecter un compte present dans la BDD si il existe
    boolean registerAccount​(java.lang.String username, java.lang.String password, java.lang.String answer)
    Methode permettant d'enregistrer un utilisateur avec un mot de passe dans la table ACCOUNTPERSO qui n'existe pas deja
    void removeAllHobbies​(Session session)
    Methode permettant de supprimer tous les points d'interets pour un utilisateur connecte
    void removeEntryFromAccount​(java.lang.String username)
    Methode permettant de supprimer un compte
    void removeFavourites​(java.lang.String search, Session session)
    Methode permettant de supprimer un favoris de son compte lorsqu'on est connecte a celui-ci
    void removeHobbies​(java.lang.String nameToRemove, Session session)
    Methode qui permet de supprimer un point d'interet a son compte connecte
    boolean secretQuestion​(java.lang.String usernameToCheck, java.lang.String answer)
    Methode permettant d'apporter une reponse secrete afin de plus tard pouvoir changer son mot de passe sans le connaitre

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Database

      public Database()
      Methode permettant de construire 3 tables dans notre Base de Donnes avec leurs champs
  • Method Details

    • connect

      public void connect()
      Methode permettant de se connecter au driver de HSQLDB afin de pouvoir creer une Base De Donnees (BDD) en local
    • loginAccount

      public boolean loginAccount​(java.lang.String usernameToCheck, java.lang.String passwordToCheck, Session session) throws UserNotExistException, IncorrectPasswordException
      Methode permettant de connecter un compte present dans la BDD si il existe
      Parameters:
      usernameToCheck - String du nom d'utilisateur envoye par l'utilisateur via l'interface graphique
      passwordToCheck - String du mot de passe envoye par l'utilisateur via l'interface graphique
      session - Session variable permettant de demarrer la variable des lors que l'uilisateur est connecte
      Returns:
      loginAccount boolean true si la connexion a reussi, false sinon
      Throws:
      UserNotExistException - leve une exception si aucun utilisateur avec usernameToCheck n'a ete trouve dans la table AccountPerso en local
      IncorrectPasswordException - leve une exception si le mot de passe passwordToCheck ne correspond pas au mot de passe enregistre pour l'utilisateur usernameToCheck en local
    • registerAccount

      public boolean registerAccount​(java.lang.String username, java.lang.String password, java.lang.String answer) throws UserAlreadyRegisteredException
      Methode permettant d'enregistrer un utilisateur avec un mot de passe dans la table ACCOUNTPERSO qui n'existe pas deja
      Parameters:
      username - String nom d'utilisateur avec lequel on souhaite s'inscrire a l'application
      password - String mot de passe lie au nom d'utilisateur avec lequel on souhaite creer le compte
      answer - String reponse a la question secrete toujours la meme changement de demande de PO
      Returns:
      registered boolean qui est false si l'inscription n'a pas pu aboutir et true si l'inscription est effective
      Throws:
      UserAlreadyRegisteredException - renvoie une exception si le nom d'utilisateur souhaite est deja utilise par un utilisateur de l'application en local
    • changePassword

      public void changePassword​(java.lang.String formerPassword, java.lang.String passwordToUpdate, Session session) throws IncorrectPasswordException
      Parameters:
      formerPassword - String ancien mot passe afin de verifier l'authenticite de l'utilisateur
      passwordToUpdate - String nouveau mot de passse saisi par l'utilisateur a mettre a jour
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
      Throws:
      IncorrectPasswordException - Leve une exception si l'utilisateur entre un mot de passe incorrect pour son compte
    • secretQuestion

      public boolean secretQuestion​(java.lang.String usernameToCheck, java.lang.String answer)
      Methode permettant d'apporter une reponse secrete afin de plus tard pouvoir changer son mot de passe sans le connaitre
      Parameters:
      usernameToCheck - String du nom d'utilisateur sur lequel on doit repondre a la question secrete
      answer - String reponse a la question secrete saisie par l'utilisateur
      Returns:
      answerIsCorrect boolean true si la reponse a la question secrete est juste et false sinon
    • addFavourites

      public void addFavourites​(java.lang.String search, Session session)
      Methode permettant d'ajouter un favoris au compte lorsque l'utilisateur est connecte a ce compte
      Parameters:
      search - String correspondant au favoris que l'on souhaite ajoute, soit un utilisateur @example, soit un hashtag #exemple ou soit un mot cle exemple
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
    • removeFavourites

      public void removeFavourites​(java.lang.String search, Session session)
      Methode permettant de supprimer un favoris de son compte lorsqu'on est connecte a celui-ci
      Parameters:
      search - String correspondant au favoris que l'on souhaite supprimer
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
    • removeEntryFromAccount

      public void removeEntryFromAccount​(java.lang.String username)
      Methode permettant de supprimer un compte
      Parameters:
      username - String correspondant au nom d'utilisateur du compte que l'on souhaite supprimer de l'application
    • isFavouritedBy

      public boolean isFavouritedBy​(java.lang.String search, Session session)
      Methode permettant de savoir si une recherche est deja un favoris
      Parameters:
      search - String la recherche dont on souhaite savoir si elle est deja un favoris pour le compte connecte
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
      Returns:
      favouriteIsAlreadyRegistered boolean false si la recherche n'est pas encore un favoris pour le compte connecte et true sinon
    • displayFavourites

      public java.util.ArrayList<java.lang.String> displayFavourites​(Session session)
      Methode permettant de selectionner tous les favoris dans la table pour l'utilisateur connecte afin de les afficher sur l'onglet favoris
      Parameters:
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
      Returns:
      listFavourites renvoie une liste de string correspondant a l'ensemble des favoris de l'utilisateur connect
    • addHobbies

      public void addHobbies​(java.lang.String nameToAdd, java.lang.String listHashtagsAndUsersToAdd, Session session)
      Methode permettant d'ajouter un point d'interet a son compte connecte
      Parameters:
      nameToAdd - String nom que l'on donne au point d'interet que l'on souhaite ajouter
      listHashtagsAndUsersToAdd - String compose d'un ou plusieurs hashtags, utilisateurs ou mots clefs et correspondant au favoris qu'on souhaite ajouter
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
    • removeHobbies

      public void removeHobbies​(java.lang.String nameToRemove, Session session)
      Methode qui permet de supprimer un point d'interet a son compte connecte
      Parameters:
      nameToRemove - String nom que l'on donne au point d'interet que l'on souhaite supprimer
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
    • removeAllHobbies

      public void removeAllHobbies​(Session session)
      Methode permettant de supprimer tous les points d'interets pour un utilisateur connecte
      Parameters:
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
    • isHobbyBy

      public boolean isHobbyBy​(java.lang.String nameToCheck, Session session)
      Methode permettant de savoir si un point d'interet avec le nom rentre en paramtre existe dj pour l'utilisateur connect
      Parameters:
      nameToCheck - String nom que l'on donne au point d'intrt dont on veut savoir si il existe
      session - Session permettant d'identifier un utilisateur connect via son identifiant d'utilisateur
      Returns:
      hobbyIsAlreadyRegistered boolean renvoyant true si un point d'intrt du mme nom est dj enregistr pour l'utilisateur connecter et false si aucun point d'intrt avec ce nom n'est enregistr avec ce compte
    • displayHobbies

      public java.util.ArrayList<java.util.ArrayList<java.lang.String>> displayHobbies​(Session session)
      Methode permettant de selectionner tous les points d'interets pour un utilisateur connecte
      Parameters:
      session - Session permettant d'identifier un utilisateur connecte via son identifiant d'utilisateur
      Returns:
      listHobbies correspond a la liste de liste des points d'interets(POI) pour un utilisateur connecte au format [ [nom du POI 1, POI 1], [nom du POI 2, POI 2] , ... , [ nom du dernier POI, dernier POI ] ]