Class GenericRedisCache<T extends IdEntity>

java.lang.Object
at.letto.databaseclient.caches.GenericRedisCache<T>
All Implemented Interfaces:
CacheInterface<T>

@Service public abstract class GenericRedisCache<T extends IdEntity> extends Object implements CacheInterface<T>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) BaseLettoRedisDBService
     
    private int
     
    private TimeUnit
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Check, ob Redis-Datenbank verfügbar ist
    void
    Löschen von allen Cache-Einträgen dieses Typs von DTOs
    private String
    key(int id, Class<T> type, String school)
    Erstellung eines Keys für das Speichern eines DTOs (IdEntity) in der Redis-Datenbank.
    Zusammensetzung des Keys: schule:class-name:id
    load(int id, LettoToken token)
    Öffentliche Methode zum Laden eines DTOs aus dem Cache.
    loadData(int id, LettoToken token)
    Methode zum Laden des DTOs aus der Datenbank.
    protected T
    loadData(int id, Class<T> type, LettoToken token)
    Laden eines DTOs aus der Redis-Datenbank Ist Redis nicht funktionsfähig, dann Abbruch, null wird zurückgegeben
    protected abstract T
    loadExternalData(LettoToken token, int id, String key)
    Methode wird aufgerufen, wenn im Cache kein Eintrag gefunden wurde.
    Dient zum Laden des jeweiligen DTOs aus der SQL-Datenbank über das Datenservice.
    void
    put(T data, int id, LettoToken token)
    Speichern eines DTOs in der Datenbankmit einer anderen ID.
    Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.
    void
    put(T data, LettoToken token)
    Speichern eines DTOs in der Datenbank unter dessen ID.
    Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.
    void
    remove(int id, LettoToken token)
    Löschen eines DTOs mit ID aus einem Cache.
    void
    remove(int id, Class<T> type, String school)
    Lösschen eines DTOs aus dem Redis-Cache.
    Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung
    void
    remove(int id, String school, String token)
    Löschen eines DTOs mit ID aus einem Cache.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • GenericRedisCache

      public GenericRedisCache()
  • Method Details

    • checkRedis

      public boolean checkRedis()
      Check, ob Redis-Datenbank verfügbar ist
    • load

      public T load(int id, LettoToken token)
      Öffentliche Methode zum Laden eines DTOs aus dem Cache.
      Specified by:
      load in interface CacheInterface<T extends IdEntity>
      Parameters:
      id - ID des gesuchten Objekts (DTO muss IdEntity implementiert haben!)
      token - LettoToken zur Ermittlung der Schule
      Returns:
      DTO aus dem Cache
    • loadData

      public T loadData(int id, LettoToken token)
      Methode zum Laden des DTOs aus der Datenbank. Muss im Kindelement überschrieben werden, um den korrekten Typ an loadData(id, Class type, ... ) übergeben zu können. Wird intern von load(...) aufgerufen.
      Parameters:
      id - ID, nach der gesucht werden soll
      token - LettoToken zur Ermittlung des Schul-Namens
      Returns:
      DTO
    • loadExternalData

      protected abstract T loadExternalData(LettoToken token, int id, String key)
      Methode wird aufgerufen, wenn im Cache kein Eintrag gefunden wurde.
      Dient zum Laden des jeweiligen DTOs aus der SQL-Datenbank über das Datenservice. Wenn DTO korrekt geladen wurde, wird es im Redis-Cache gespeichert!
      Parameters:
      token - LeTTo-Token
      id - ID des DTOs in der SQL-Datenbank
      key - Key für das Abfragen in der Redis-Datenbank
      Returns:
      DTO aus MySQL-Datenbank
    • remove

      public void remove(int id, LettoToken token)
      Description copied from interface: CacheInterface
      Löschen eines DTOs mit ID aus einem Cache.
      Specified by:
      remove in interface CacheInterface<T extends IdEntity>
      Parameters:
      id - ID des DTOs
      token - LeTTo-Token zur Ermittlung der Schule
    • remove

      public void remove(int id, String school, String token)
      Description copied from interface: CacheInterface
      Löschen eines DTOs mit ID aus einem Cache.
      Specified by:
      remove in interface CacheInterface<T extends IdEntity>
      Parameters:
      id - ID des DTOs
      school - Schul-Kurzbezeichner
      token - Token in Stringform (Bearer-Token)
    • loadData

      protected T loadData(int id, Class<T> type, LettoToken token)
      Laden eines DTOs aus der Redis-Datenbank Ist Redis nicht funktionsfähig, dann Abbruch, null wird zurückgegeben
      Parameters:
      id - Id (Datenelement muss IdEntity implementiert haben)
      type - Ziel-Type (Class) für JSON
      token - LeTTo-Token
      Returns:
      DTO oder null
    • put

      public void put(T data, LettoToken token)
      Speichern eines DTOs in der Datenbank unter dessen ID.
      Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.
      Specified by:
      put in interface CacheInterface<T extends IdEntity>
      Parameters:
      data - Datenelement, muss IdEntity implementiert haben
      token - LeTTo-Token zur Autentifizierung
    • put

      public void put(T data, int id, LettoToken token)
      Speichern eines DTOs in der Datenbankmit einer anderen ID.
      Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung.
      Parameters:
      data - Datenelement, muss IdEntity implementiert haben
      token - LeTTo-Token zur Autentifizierung
    • key

      private String key(int id, Class<T> type, String school)
      Erstellung eines Keys für das Speichern eines DTOs (IdEntity) in der Redis-Datenbank.
      Zusammensetzung des Keys: schule:class-name:id
      Parameters:
      id - ID des DTOs
      type - Class des DTOs
      school - Schulname
      Returns:
      Redis-Key
    • remove

      public void remove(int id, Class<T> type, String school)
      Lösschen eines DTOs aus dem Redis-Cache.
      Ist Redis nicht funktionsfähig, dann Abbruch ohne Meldung
      Parameters:
      id - ID des DTOs (IdEntity)
      type - class des DTOs
      school - Schulname (Kurzbezeichner)
    • clear

      public void clear(LettoToken token)
      Description copied from interface: CacheInterface
      Löschen von allen Cache-Einträgen dieses Typs von DTOs
      Specified by:
      clear in interface CacheInterface<T extends IdEntity>
      Parameters:
      token - LeTTo-Token zur Schulidentifikation