Package chatapp.Model

# Class DataBase

java.lang.Object
chatapp.Model.DataBase

    public class DataBase
    extends java.lang.Object

Classe représentant la Base de données. Celle-ci stocke la liste des utilisateurs ainsi que les échanges entre eux

Format de la table Utilisateurs
+--------+-------------+---------+---------------------+
| ID | Pseudo | Actif | Date d'inscription |
+--------+-------------+---------+---------------------+
- Id : Correspond à l'ID de l'utilisateur
- Pseudo : Dernier Pseudo utilisé pour cet ID, va etre remplacé par le pseudo actuel avec majPseudo
- Date d'inscription : Comme son nom l'indique le jour de l'inscription de cet utilisateur
- Actif : Boolean indiquant si l'utilisateur est actif
Chaque communication entres utilisateurs sera stockée dans une table de la forme
+--------------+--------+---------+--------------+
| Destinataire | Source | Message | Date d'envoi |
+--------------+--------+---------+--------------+
- Destinataire : Id du destinataire du message
- Source : Id de celui qui envoie le message
- Message : Msg envoyé
- Date d'envoi : Date a laquelle Source a envoyé le message à destinataire

## Constructor Summary

Constructors
Constructor | Description
--- | ---
`DataBase()` | Constructeur de la database On installe le driver et on établit la connection.

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`void` | `ajoutHistorique​(java.lang.String IDdest, java.lang.String IDsrc, java.lang.String Msg)` | Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée
`void` | `ajoutUtilisateurs​(java.lang.String ID, java.lang.String Pseudo)` | Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà
`void` | `CreationTableHistorique​(java.lang.String ID1, java.lang.String ID2)` | Methode permettant de créer une table pour stocker les messages entre deux utilisateurs
`static DataBase` | `getInstance()` | Méthode permettant de renvoyer une instance de la classe DataBase
`java.lang.String` | `getNomTable​(Utilisateur U1, Utilisateur U2)` | Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.
`boolean` | `idExiste​(java.lang.String ID)` | Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'
`void` | `majPseudo​(java.lang.String ID, java.lang.String Pseudo)` | Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
`void` | `majUtilisateursActifs​(java.lang.Boolean Connecte, java.lang.String Id)` | Méthode permettant de mettre a jour les utilisateurs actuellement actif
`java.lang.String` | `recupMsg​(java.lang.String ID, java.lang.String IDdestinataire, int deb, int fin)` | Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs
`java.lang.String` | `recupNMsg​(java.lang.String ID, java.lang.String IDdestinataire, int N)` | Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs
`java.lang.Integer` | `tailleBDD​(java.lang.String nomTable)` | Cette méthode sert à récupérer la taille d'un base de donnée

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### DataBase

public DataBase()
Constructeur de la database
On installe le driver et on établit la connection.

## Method Details

### getInstance

public static DataBase getInstance()
Méthode permettant de renvoyer une instance de la classe DataBase

Returns:
  L'instance du singleton DataBase.

### CreationTableHistorique

public void CreationTableHistorique​(java.lang.String ID1, java.lang.String ID2)
Methode permettant de créer une table pour stocker les messages entre deux utilisateurs

Parameters:
  `ID1` - Id du premier utilisateur
  `ID2` - Id du second utilisateur

### majPseudo

public void majPseudo​(java.lang.String ID, java.lang.String Pseudo)
Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee

Parameters:
  `ID` - Id de l'utilisateur qui vient de changer de pseudo
  `Pseudo` - Nouveau Pseudo de l'utilisateur

### ajoutHistorique

public void ajoutHistorique​(java.lang.String IDdest, java.lang.String IDsrc, java.lang.String Msg)
Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée

Parameters:
  `IDdest` - Id de l'utilisateur Destinataire du message
  `IDsrc` - Id de celui qui envoi le message
  `Msg` - Message envoye entre les deux utilisateurs

### ajoutUtilisateurs

public void ajoutUtilisateurs​(java.lang.String ID, java.lang.String Pseudo)
Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà

Parameters:
  `ID` - Id de l'utilisateur que l'on veut rajouter
  `Pseudo` - Pseudo actuelle de l'utilisateur

### majUtilisateursActifs

public void majUtilisateursActifs​(java.lang.Boolean Connecte, java.lang.String Id)
Méthode permettant de mettre a jour les utilisateurs actuellement actif

Parameters:
  `Id` - Id de l'utilisateur qui vient de se connecter ou déconnecter
  `Connecte` - Boolean true si il est connecté , false sinon

### recupNMsg

public java.lang.String recupNMsg​(java.lang.String ID, java.lang.String IDdestinataire, int N)
Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs

Parameters:
  `ID` - Utilisateur associé a ChatApp
  `IDdestinataire` - Celui avec qui correspond ID
  `N` - Le nombre de messages souhaités
Returns:
  Les N derniers Messages

### recupMsg

public java.lang.String recupMsg​(java.lang.String ID, java.lang.String IDdestinataire, int deb, int fin)
Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs

Parameters:
  `ID` - Utilisateur associé a ChatApp
  `IDdestinataire` - Celui avec qui correspond ID
  `deb` - On veut les messages à partir de l'indice deb
  `fin` - On veut les messages jusqu'a l'indice fin
Returns:
  Les messages d'une plage de donnée [deb,fin]

### tailleBDD

public java.lang.Integer tailleBDD​(java.lang.String nomTable)
Cette méthode sert à récupérer la taille d'un base de donnée

Parameters:
  `nomTable` - Nom de la table de donnée dont on veut récuperer le nom
Returns:
  Taille de la BDD

### idExiste

public boolean idExiste​(java.lang.String ID)
Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'

Parameters:
  `ID` - On recherche l'utilisateur dont l'ID est ID
Returns:
  True si l'utilisateur existe , False sinon

### getNomTable

public java.lang.String getNomTable​(Utilisateur U1, Utilisateur U2)
Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.

Parameters:
  `U1` - Un des 2 utilisateurs
  `U2` - Le second utilisateur
Returns:
  Le nom de la table des historiques