# ISPDAO
Date: 2018-01-28

data

## Class ISPDAO

- java.lang.Object
- - data.ISPDAO

    public class ISPDAO
    extends java.lang.Object

### Field Summary

Fields
`private java.lang.String` `dbAdress`
`static ISPDAO` `instance` Cette classe implémente le design patern singleton.

### Constructor Summary

Constructors
`private` `ISPDAO()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`private java.lang.String` `executeGet(java.lang.String https_url)` Version simplifiée : Execute une requette de type GET en HTTPS simplement avec l'addresse et avec les paramètres par défault pour du https
`private java.lang.String` `executeGet(java.lang.String https_url, java.lang.String proxyName, int port)` Implementation reele de la requete HTTPS.
`private CoveredAreas[]` `getCoveredAreas(org.json.JSONObject json)` Récupere les données
`private java.util.Date` `getDate(java.lang.String date)` TODO : implements this in Isp
`private java.lang.String` `getDateAdded(org.json.JSONObject json)`
`private java.lang.String` `getDateUpdated(org.json.JSONObject json)`
`private int` `getId(org.json.JSONObject json)`
`static ISPDAO` `getInstance()` Cette méthode est celle permettant de récuperer l'instance de la classe.
`private java.lang.Boolean` `getIsMember(org.json.JSONObject json)`
`ISP` `getISP(int number)` Récupere le FAI qui a pour id dans db.ffdn.org le paramètre number
`java.util.List<ISP>` `getISPs()` Récupere tous les FAI possibles.
`private java.lang.String` `getName(org.json.JSONObject json)` Recupere le nom de l'ISP dans le JSON

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

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

### Field Detail

#### instance

    public static volatile ISPDAO instance

Cette classe implémente le design patern singleton. Son role est de récuperer les données de db.ffdn.org et de les transformer en objets utilisables ensuite.

#### dbAdress

    private final java.lang.String dbAdress

See Also:
  Constant Field Values

### Constructor Detail

#### ISPDAO

    private ISPDAO()

### Method Detail

#### getInstance

    public static final ISPDAO getInstance()

Cette méthode est celle permettant de récuperer l'instance de la classe. Si cette dernière n'est pas initialisée, elle l'initialise avant.

Returns:
  L'instance de la classe a utiliser ensuite

#### executeGet

    private java.lang.String executeGet(java.lang.String https_url)

Version simplifiée : Execute une requette de type GET en HTTPS simplement avec l'addresse et avec les paramètres par défault pour du https

Parameters:
  `https_url` - URL a récuperer en HTTPS
Returns:
  La chaine de caractères correspondant à la page demandée par l'URL.

#### executeGet

    private java.lang.String executeGet(java.lang.String https_url,
                                        java.lang.String proxyName,
                                        int port)

Implementation reele de la requete HTTPS.

Parameters:
  `https_url` - URL sur laquelle récuperer la ressource
  `proxyName` - Le nom du proxy, si besoin
  `port` - le port sur lequel faire la demande
Returns:
  La chaine de caractères correspondant à la page demandée par l'URL.

#### getISPs

    public java.util.List<ISP> getISPs()
                                throws java.lang.Exception

Récupere tous les FAI possibles. Dans le cas ou il y a des Fails consécutifs, c'est que peut-être DB.ffdn est deffectueux, car on a pas atteint le nombre de fai annoncés par total_items, mais on n'as que des réponses indiquant que la ressource est incorrecte.

Returns:
  la liste de tous les FAIs possibles.
Throws:
  `java.lang.Exception` - Si il n'arrive pas a faire le get ou le JsonObjects

#### getISP

    public ISP getISP(int number)

Récupere le FAI qui a pour id dans db.ffdn.org le paramètre number

Parameters:
  `number` - numéro correspondna tà l'id a aller chercher dans db
Returns:
  le FAI construit correspondant, ou null si l'id n'est pas ou plus occupé par un FAI

#### getName

    private java.lang.String getName(org.json.JSONObject json)

Recupere le nom de l'ISP dans le JSON

Parameters:
  `json` - Objet JSON généré a partir de la requete principale
Returns:
  Le nom si displonible ou null

#### getId

    private int getId(org.json.JSONObject json)

#### getIsMember

    private java.lang.Boolean getIsMember(org.json.JSONObject json)

#### getDateAdded

    private java.lang.String getDateAdded(org.json.JSONObject json)

#### getDateUpdated

    private java.lang.String getDateUpdated(org.json.JSONObject json)

Parameters:
  `json` - Objet json a l'origine
Returns:
  chaine representant la date sous forme string:ISO8601 ou nu

#### getCoveredAreas

    private CoveredAreas[] getCoveredAreas(org.json.JSONObject json)

Récupere les données

Parameters:
  `json` - objet récupéré depuis db.ffdn
Returns:
  Tableau des zones couvertes

#### getDate

    private java.util.Date getDate(java.lang.String date)

TODO : implements this in Isp

Parameters:
  `date` - String correspondant a une date au format aaaa-mm-jj ou aaaa-mm
Returns:
  Date correspondant