# Cache
Date: 2018-01-28

main

## Class Cache

- java.lang.Object
- - main.Cache

All Implemented Interfaces:
  AffichableSurIRC

    public class Cache
    extends java.lang.Object
    implements AffichableSurIRC

### Field Summary

Fields
`private java.util.List<ISP>` `cache`
`static Cache` `instance` Cette classe sert de cache pour les infos de DB Elle implemente le Design Pattern Singleton dans la mesure où cette classe doit être l'unique instance de référence peu importe le Thread l'utilisant, et que le cache est unique.
`private java.util.Date` `lastCacheUpdate`

### Fields inherited from interface main.AffichableSurIRC

`MAX_CHARACTERS`

### Constructor Summary

Constructors
`private` `Cache()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static Cache` `getInstance()` Méthode du design patern singleton.
`int` `getISPCount(java.lang.Boolean ffdn_member)` Donne le nombre de FAI de la fédé en parcourant le cache.
`ISP` `getISPWithGeoZone(java.lang.String s)`
`ISP` `getISPWithName(java.lang.String s)`
`java.util.Date` `getLastCacheUpdate()`
`java.util.List<ISP>` `getListe()`
`int` `getMemberCountInFede()`
`int` `getMemberCountOutFede()`
`java.lang.String` `getMembersPercents(int val)`
`int` `getSubscribersCountInFede()`
`int` `getSubscribersCountOutFede()`
`java.lang.String` `getSubscribersPercents(int val)`
`boolean` `reload()` Cette methode vient mettre à jour le cache des FAI.
`int` `size()`
`java.lang.String` `toString()`
`java.util.List<java.lang.String>` `toStringIRC()`

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

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

### Field Detail

#### instance

    public static volatile Cache instance

Cette classe sert de cache pour les infos de DB Elle implemente le Design Pattern Singleton dans la mesure où cette classe doit être l'unique instance de référence peu importe le Thread l'utilisant, et que le cache est unique.

#### lastCacheUpdate

    private java.util.Date lastCacheUpdate

#### cache

    private java.util.List<ISP> cache

### Constructor Detail

#### Cache

    private Cache()

### Method Detail

#### getLastCacheUpdate

    public java.util.Date getLastCacheUpdate()

#### getInstance

    public static final Cache getInstance()

Méthode du design patern singleton. Permet de récuperer et si besoin d'initialiser, l'unique instance de la classe.

Returns:
  Instance du Cache

#### reload

    public boolean reload()

Cette methode vient mettre à jour le cache des FAI. Pour cela, il récupere l'instance du DAO et récupère la liste des ISP. Si tout cse passe correctement, il supprime le cache précédent et le remplace par les nouvelles valeurs. Sinon, il maaintient le cache précédent.

Returns:
  True si l'operation s'est passée correctement, False sinon et affiche la cause

#### size

    public int size()

#### getListe

    public java.util.List<ISP> getListe()

#### getMemberCountInFede

    public int getMemberCountInFede()

#### getSubscribersCountInFede

    public int getSubscribersCountInFede()

#### getMemberCountOutFede

    public int getMemberCountOutFede()

#### getSubscribersCountOutFede

    public int getSubscribersCountOutFede()

#### getSubscribersPercents

    public java.lang.String getSubscribersPercents(int val)

#### getMembersPercents

    public java.lang.String getMembersPercents(int val)

#### getISPCount

    public int getISPCount(java.lang.Boolean ffdn_member)

Donne le nombre de FAI de la fédé en parcourant le cache.

Parameters:
  `ffdn_member` - Si = null alors on s'en fout, si =true, seuls les FAI de la fédé, si = false, seuls les FAI non membres
Returns:
  nombre de FAI

#### getISPWithName

    public ISP getISPWithName(java.lang.String s)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### toStringIRC

    public java.util.List<java.lang.String> toStringIRC()

Specified by:
  `toStringIRC` in interface `AffichableSurIRC`

#### getISPWithGeoZone

    public ISP getISPWithGeoZone(java.lang.String s)