Klasse DataManagerRevised<ID,DatabaseDTO,CoreDTO>

java.lang.Object
de.svws_nrw.data.DataManagerRevised<ID,DatabaseDTO,CoreDTO>
Typparameter:
ID - die Typ, welcher als ID für die Informationen verwendet wird.
DatabaseDTO - der Typ des zugrundeliegenden Datenbank-DTOs
CoreDTO - der Typ des zugrundeliegenden Core-DTOs
Bekannte direkte Unterklassen:
DataGostKlausurenKursklausur, DataGostKlausurenRaum, DataGostKlausurenRaumstunde, DataGostKlausurenSchuelerklausur, DataGostKlausurenSchuelerklausurraumstunde, DataGostKlausurenSchuelerklausurTermin, DataGostKlausurenTermin, DataGostKlausurenVorgabe, DataGostSchuelerLaufbahnplanung, DataKatalogEinwilligungsarten, DataKlassendaten, DataSchuelerKAoADaten, DataSchuelerLeistungsdaten, DataSchuelerLernabschnittsdaten, DataSchuelerSprachbelegung, DataSchuelerSprachpruefung, DataSchuelerVermerkartenZusammenfassung, DataSchuelerVermerke, DataStundenplanKalenderwochenzuordnung, DataStundenplanPausenzeiten, DataVermerkarten, DataWiedervorlage

public abstract class DataManagerRevised<ID,DatabaseDTO,CoreDTO> extends Object
Diese abstrakte Klasse ist die Grundlage für das einheitliche Aggregieren von Informationen für die OpenAPI und das einheitliche Bereitstellen von Funktionalitäten für GET-, CREATE-, PATCH- und DELETE-Operationen.
  • Feldübersicht

    Felder
    Modifizierer und Typ
    Feld
    Beschreibung
    protected final DBEntityManager
    Die Datenbank-Verbindung zum Aggregieren der Informationen aus der DB und zum Schreiben der Informationen bzw.
  • Konstruktorübersicht

    Konstruktoren
    Modifizierer
    Konstruktor
    Beschreibung
    protected
    Erstellt einen neuen Datenmanager mit der angegebenen Verbindung
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    add(Map<String,Object> initAttributes)
    Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    jakarta.ws.rs.core.Response
    Fügt ein neues DTO in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    protected CoreDTO
    addBasic(ID newID, Map<String,Object> initAttributes)
    Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    jakarta.ws.rs.core.Response
    Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    Fügt mehrere neue DTOs in die Datenbank hinzu, indem in der Datenbank jeweils eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    jakarta.ws.rs.core.Response
    Fügt mehrere neue DTOs in die Datenbank hinzu, indem in der Datenbank jeweils eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
    protected void
    applyPatchMappings(DatabaseDTO dto, Map<String,Object> patchMappings, Set<String> attributesToPatch, Set<String> attributesToSkip, boolean isCreation)
    Wendet die angegebenen Mappings für die Attribute des Core-DTOs (übergebene Map) auf das übergebene Datenbank-DTO an.
    void
    checkBeforeCreation(ID newID, Map<String,Object> initAttributes)
    Methode prüft vor dem Erstellen eines neuen Datenbank-DTOs, ob alle Vorbedingungen zum Erstellen erfüllt sind.
    void
    Methode prüft vor dem Löschen, ob alle Vorbedingungen zum Löschen erfüllt sind.
    void
    checkBeforePatch(DatabaseDTO dto, Map<String,Object> patchAttributes)
    Methode prüft vor dem Patchen eines Datenbank-DTOs, ob alle Vorbedingungen zum Patch erfüllt sind.
    void
    Prüft, ob der Benutzer bei dem angegeben Abiturjahrgang als Beratungslehrer funktionsbezogene Rechte hat oder nicht.
    void
    Prüft, ob der Benutzer für die angegebene Klasse funktionsbezogene Rechte hat oder nicht.
    protected Long
    Erzeugt die nächste default ID vom Typ Long für ein neues Datenbank-DTO.
    jakarta.ws.rs.core.Response
    Entfernt das Datenbank-DTO mit der angegebenen ID und gibt das zugehörige Core-DTO in der Response zurück.
    protected void
    Methode löscht das übergebene Datenbank-DTO aus der Datenbank.
    jakarta.ws.rs.core.Response
    Entfernt die Datenbank-DTOs mit den angegebenen IDs und gibt die zugehörigen Core-DTOs in der Response zurück.
    Ermittelt eine Liste mit allen Core-DTOs aus der DB.
    jakarta.ws.rs.core.Response
    Ermittelt eine Liste mit allen Core-DTOs aus der DB.
    getById(ID id)
    Ermittelt das Core-DTO mit der angegebenen ID.
    jakarta.ws.rs.core.Response
    Ermittelt das Core-DTO mit der angegebenen ID.
    protected ID
    getID(Map<String,Object> attributes)
    Erzeugt bzw. ermittelt die custom ID für ein neues oder zu veränderndes Datenbank-DTO anhand der übergebenen Attribute.
    Wichtig: Wird eine neue ID benötigt, die abweichend von der Default Implementierung in der Methode createNextLongID(Long) ist oder nicht vom Typ Long ist, muss diese Methode überschrieben werden.
    Ermittelt eine Liste mit Core-DTOs aus der DB.
    jakarta.ws.rs.core.Response
    Ermittelt eine Liste mit Core-DTOs aus der DB.
    protected ID
    getNextID(ID lastID, Map<String,Object> initAttributes)
    Bestimmt die nächste ID für ein neues Datenbank-DTO.
    boolean
    hatBenutzerNurFunktionsbezogeneKompetenz(@NotNull BenutzerKompetenz kompetenzFunktionsbezogen, @NotNull Set<BenutzerKompetenz> kompetenzenUebergreifend)
    Prüft, ob der Benutzer ausschließlich eine funktionsbezogene Kompetenz besitzt und nicht noch zusätzlich eine übergreifende Kompetenz.
    protected void
    initDTO(DatabaseDTO dto, ID id, Map<String,Object> initAttributes)
    Initialisiert das Datenbank-DTO mit der übergebenen ID.
    Wichtig: Diese Methode muss überschrieben werden, damit die Add-Methoden ausführbar sind.
    protected abstract CoreDTO
    Wandelt das Datenbank-DTO in das Core-DTO um, soweit die Daten in dem Datenbank-DTO enthalten sind.
    protected void
    mapAttribute(DatabaseDTO dto, String name, Object value, Map<String,Object> map)
    Führt das Mapping eines Attributes des Core-DTOs auf das zugehörige Datenbank-DTO durch.
    Wichtig: Diese Methode muss überschrieben werden, damit die Add-Methoden und Patch-Methoden ausführbar sind.
    Wandelt die Datenbank-DTOs in der übergebenen Collection in Core-DTOs und gibt die Liste dieser umgewandelten DTOs zurück.
    protected DatabaseDTO
    newDTO(ID newID, Map<String,Object> initAttributes)
    Erstellt und initialisiert ein neues Datenbank-DTO.
    patch(ID id, Map<String,Object> attributesToPatch)
    Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an.
    jakarta.ws.rs.core.Response
    Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an.
    Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an.
    jakarta.ws.rs.core.Response
    Passt die Informationen der Datenbank-DTOs mithilfe des JSON-Patches aus dem übergebenen InputStream an.
    protected void
    Methode persistiert das übergebene Datenbank-DTO in der Datenbank.
    protected void
    Setzt die Attribute, wo das Mapping beim Hinzufügen in einem Zweiten Schritt passiert, nachdem das Datenbank-DTO ein erstes mal persistiert wurde.
    protected void
    Setzt die Attribute, wo das Patchen explizit verboten ist und nur beim Erstellen von DTOs ein Mapping erlaubt ist.
    protected void
    Setzt die Attribute, welche neben der ID explizit notwendig sind und beim Erstellen eines DTOs gemappt werden müssen.

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Felddetails

    • conn

      protected final DBEntityManager conn
      Die Datenbank-Verbindung zum Aggregieren der Informationen aus der DB und zum Schreiben der Informationen bzw. Teilinformationen
  • Konstruktordetails

    • DataManagerRevised

      protected DataManagerRevised(DBEntityManager conn)
      Erstellt einen neuen Datenmanager mit der angegebenen Verbindung
      Parameter:
      conn - die Datenbank-Verbindung, welche vom Daten-Manager benutzt werden soll
  • Methodendetails

    • setAttributesRequiredOnCreation

      protected void setAttributesRequiredOnCreation(String... attrs)
      Setzt die Attribute, welche neben der ID explizit notwendig sind und beim Erstellen eines DTOs gemappt werden müssen.
      Parameter:
      attrs - die Attribute
    • setAttributesNotPatchable

      protected void setAttributesNotPatchable(String... attrs)
      Setzt die Attribute, wo das Patchen explizit verboten ist und nur beim Erstellen von DTOs ein Mapping erlaubt ist.
      Parameter:
      attrs - die Attribute
    • setAttributesDelayedOnCreation

      protected void setAttributesDelayedOnCreation(String... attrs)
      Setzt die Attribute, wo das Mapping beim Hinzufügen in einem Zweiten Schritt passiert, nachdem das Datenbank-DTO ein erstes mal persistiert wurde. Dies dient z.B. dazu, dass das Patchen eines Attributes ggf. auch Einfluss auf andere Datenbank-Tabellen hat, wo eine Fremdschlüsselbeziehung besteht.
      Parameter:
      attrs - die Attribute
    • getID

      protected ID getID(Map<String,Object> attributes) throws ApiOperationException
      Erzeugt bzw. ermittelt die custom ID für ein neues oder zu veränderndes Datenbank-DTO anhand der übergebenen Attribute.
      Wichtig: Wird eine neue ID benötigt, die abweichend von der Default Implementierung in der Methode createNextLongID(Long) ist oder nicht vom Typ Long ist, muss diese Methode überschrieben werden. Ebenfalls muss die Methode implementiert werden, wenn die Patch-Operation patchMultipleAsResponse(InputStream) genutzt wird.
      Parameter:
      attributes - die Map mit initialen oder zu patchenden Attributen für ein DTO
      Gibt zurück:
      die custom ID
      Löst aus:
      ApiOperationException - im Fehlerfall
    • newDTO

      protected DatabaseDTO newDTO(ID newID, Map<String,Object> initAttributes) throws ApiOperationException
      Erstellt und initialisiert ein neues Datenbank-DTO.
      Parameter:
      newID - die neue ID für das DTO
      initAttributes - die Attribute zur Initialisierung
      Gibt zurück:
      das neue DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • initDTO

      protected void initDTO(DatabaseDTO dto, ID id, Map<String,Object> initAttributes) throws ApiOperationException
      Initialisiert das Datenbank-DTO mit der übergebenen ID.
      Wichtig: Diese Methode muss überschrieben werden, damit die Add-Methoden ausführbar sind.
      Parameter:
      dto - das Datenbank-DTO
      id - die ID
      initAttributes - die Attribute zur Initialisierung
      Löst aus:
      ApiOperationException - im Fehlerfall
    • map

      protected abstract CoreDTO map(DatabaseDTO dto) throws ApiOperationException
      Wandelt das Datenbank-DTO in das Core-DTO um, soweit die Daten in dem Datenbank-DTO enthalten sind.
      Parameter:
      dto - das Datenbank-DTO
      Gibt zurück:
      das neu erstellte Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • mapList

      public List<CoreDTO> mapList(Collection<DatabaseDTO> dtos) throws ApiOperationException
      Wandelt die Datenbank-DTOs in der übergebenen Collection in Core-DTOs und gibt die Liste dieser umgewandelten DTOs zurück.
      Parameter:
      dtos - die Collection der Datenbank-DTOs
      Gibt zurück:
      die Liste der Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • mapAttribute

      protected void mapAttribute(DatabaseDTO dto, String name, Object value, Map<String,Object> map) throws ApiOperationException
      Führt das Mapping eines Attributes des Core-DTOs auf das zugehörige Datenbank-DTO durch.
      Wichtig: Diese Methode muss überschrieben werden, damit die Add-Methoden und Patch-Methoden ausführbar sind.
      Parameter:
      dto - das Datenbank-DTO
      name - der Name des Core-DTO-Attributes
      value - der Wert des Core-DTO-Attributes
      map - die map von Attribut-Namen des Core-DTOs auf den zugehörigen Attributwertes
      Löst aus:
      ApiOperationException - wenn ein Fehler bei dem Mapping auftritt
    • getAll

      public List<CoreDTO> getAll() throws ApiOperationException
      Ermittelt eine Liste mit allen Core-DTOs aus der DB. Wird in seltenen Fällen verwendet, wenn auch eine Filterung bei der Methode getList() implementiert wird. Wichtig: Diese Methode muss überschrieben werden, damit die Methode getAllAsResponse() ausführbar ist.
      Gibt zurück:
      eine Liste der Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getAllAsResponse

      public jakarta.ws.rs.core.Response getAllAsResponse() throws ApiOperationException
      Ermittelt eine Liste mit allen Core-DTOs aus der DB. Wird in seltenen Fällen verwendet, wenn auch eine Filterung bei der Methode getList() implementiert wird. Diese wird im Erfolgsfall als JSON eingebettet in einer HTTP-Response 200 zurückgegeben.
      Gibt zurück:
      eine HTTP-Response mit der Liste der Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getList

      public List<CoreDTO> getList() throws ApiOperationException
      Ermittelt eine Liste mit Core-DTOs aus der DB. Wenn bei dieser Methode eine Filterung in der abgeleiteten Klasse genutzt wird, so steht als zweite Option die Methode getAll() zur Verfügung, um den Abruf aller Core-DTOs zu implementieren. Wichtig: Diese Methode muss überschrieben werden, damit die Methode getListAsResponse() ausführbar ist.
      Gibt zurück:
      eine Liste der Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getListAsResponse

      public jakarta.ws.rs.core.Response getListAsResponse() throws ApiOperationException
      Ermittelt eine Liste mit Core-DTOs aus der DB. Wenn bei dieser Methode eine Filterung in der abgeleiteten Klasse genutzt wird, so seht als zweite Option die Methode getAll zur Verfügung, um den Abruf aller Datenbank-Werte zu implementieren. Diese wird im Erfolgsfall als JSON eingebettet in einer HTTP-Response 200 zurückgegeben.
      Gibt zurück:
      eine HTTP-Response mit der Liste der Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getById

      public CoreDTO getById(ID id) throws ApiOperationException
      Ermittelt das Core-DTO mit der angegebenen ID. Wichtig: Diese Methode muss überschrieben werden, damit die Methode getByIdAsResponse(Object) ausführbar ist.
      Parameter:
      id - die ID
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getByIdAsResponse

      public jakarta.ws.rs.core.Response getByIdAsResponse(ID id) throws ApiOperationException
      Ermittelt das Core-DTO mit der angegebenen ID. Dieses wird im Erfolgsfall als JSON eingebettet in einer HTTP-Response 200 zurückgegeben.
      Parameter:
      id - die ID
      Gibt zurück:
      eine HTTP-Response mit dem Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • applyPatchMappings

      protected void applyPatchMappings(DatabaseDTO dto, Map<String,Object> patchMappings, Set<String> attributesToPatch, Set<String> attributesToSkip, boolean isCreation) throws ApiOperationException
      Wendet die angegebenen Mappings für die Attribute des Core-DTOs (übergebene Map) auf das übergebene Datenbank-DTO an.
      Parameter:
      dto - das Datenbank-DTO
      patchMappings - eine Map mit den Attributen und den Attributwerten des Core-DTOs
      attributesToPatch - eine Menge von Attributen, die gepatched werden sollen; null wenn alle Attribute berücksichtigt werden sollen
      attributesToSkip - eine Menge von Attributen, die beim Patch ausgelassen werden sollen
      isCreation - gibt an, ob es sich um ein neues DTO handelt. Wenn true, dann werden die Attribute aus attributesNotPatchable ignoriert.
      Löst aus:
      ApiOperationException - im Fehlerfall
    • patchAsResponse

      public jakarta.ws.rs.core.Response patchAsResponse(ID id, InputStream is) throws ApiOperationException
      Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an. Dabei werden nur die übergebenen Mappings zugelassen.
      Parameter:
      id - die ID des zu patchenden DTOs
      is - der Input-Stream
      Gibt zurück:
      die Response
      Löst aus:
      ApiOperationException - im Fehlerfall
    • patchFromStream

      public CoreDTO patchFromStream(ID id, InputStream is) throws ApiOperationException
      Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an. Dabei werden nur die übergebenen Mappings zugelassen.
      Parameter:
      id - die ID des zu patchenden DTOs
      is - der Input-Stream
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • patchMultipleAsResponse

      public jakarta.ws.rs.core.Response patchMultipleAsResponse(InputStream is) throws ApiOperationException
      Passt die Informationen der Datenbank-DTOs mithilfe des JSON-Patches aus dem übergebenen InputStream an. Dabei werden nur die übergebenen Mappings zugelassen.
      Parameter:
      is - der Input-Stream
      Gibt zurück:
      die Response
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addAsResponse

      public jakarta.ws.rs.core.Response addAsResponse(InputStream is) throws ApiOperationException
      Fügt ein neues DTO in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
      Parameter:
      is - der Input-Stream
      Gibt zurück:
      die Response mit dem Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addMultipleAsResponse

      public jakarta.ws.rs.core.Response addMultipleAsResponse(InputStream is) throws ApiOperationException
      Fügt mehrere neue DTOs in die Datenbank hinzu, indem in der Datenbank jeweils eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
      Parameter:
      is - der Input-Stream
      Gibt zurück:
      die Response mit dem Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addMultiple

      public List<CoreDTO> addMultiple(InputStream is) throws ApiOperationException
      Fügt mehrere neue DTOs in die Datenbank hinzu, indem in der Datenbank jeweils eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden.
      Parameter:
      is - der Input-Stream
      Gibt zurück:
      die Liste mit den Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • deleteAsResponse

      public jakarta.ws.rs.core.Response deleteAsResponse(ID id) throws ApiOperationException
      Entfernt das Datenbank-DTO mit der angegebenen ID und gibt das zugehörige Core-DTO in der Response zurück.
      Parameter:
      id - die ID
      Gibt zurück:
      die Response - im Erfolgsfall mit dem gelöschten Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • deleteMultipleAsResponse

      public jakarta.ws.rs.core.Response deleteMultipleAsResponse(List<ID> ids) throws ApiOperationException
      Entfernt die Datenbank-DTOs mit den angegebenen IDs und gibt die zugehörigen Core-DTOs in der Response zurück.
      Parameter:
      ids - die IDs
      Gibt zurück:
      die Response - im Erfolgsfall mit den gelöschten Core-DTOs
      Löst aus:
      ApiOperationException - im Fehlerfall
    • hatBenutzerNurFunktionsbezogeneKompetenz

      public boolean hatBenutzerNurFunktionsbezogeneKompetenz(@NotNull @NotNull BenutzerKompetenz kompetenzFunktionsbezogen, @NotNull @NotNull Set<BenutzerKompetenz> kompetenzenUebergreifend)
      Prüft, ob der Benutzer ausschließlich eine funktionsbezogene Kompetenz besitzt und nicht noch zusätzlich eine übergreifende Kompetenz.
      Parameter:
      kompetenzFunktionsbezogen - die zu prüfende funktionsbezogene Kompetenz
      kompetenzenUebergreifend - die zu prüfenden übergreifenden Kompetenzen
      Gibt zurück:
      true, wenn der Benutzer ausschließlich die funktionsbezogene Kompetenz besitzt. Ansonsten false wenn der Benutzer eine übergreifende Kompetenz besitzt, bei der eine weiterführende Prüfung nicht mehr notwendig ist.
      Throws IllegalArgumentException wenn einer der Methodenparameter fehlt.
    • checkBenutzerFunktionsbezogeneKompetenzKlasse

      public void checkBenutzerFunktionsbezogeneKompetenzKlasse(Long idKlasse) throws ApiOperationException
      Prüft, ob der Benutzer für die angegebene Klasse funktionsbezogene Rechte hat oder nicht.
      Parameter:
      idKlasse - die ID der zu prüfenden Klasse
      Löst aus:
      ApiOperationException - wenn der Benutzer nicht die Kompetenz für den funktionsbezogenen Zugriff auf die Daten der Klasse hat (403 - FORBIDDEN).
    • checkBenutzerFunktionsbezogeneKompetenzAbiturjahrgang

      public void checkBenutzerFunktionsbezogeneKompetenzAbiturjahrgang(Integer abijahrgang) throws ApiOperationException
      Prüft, ob der Benutzer bei dem angegeben Abiturjahrgang als Beratungslehrer funktionsbezogene Rechte hat oder nicht.
      Parameter:
      abijahrgang - der zu prüfende Abiturjahrgang
      Löst aus:
      ApiOperationException - wenn der Benutzer nicht die Kompetenz für den funktionsbezogenen Zugriff auf den Abiturjahrgang hat (503 - FORBIDDEN).
    • checkBeforeDeletion

      public void checkBeforeDeletion(List<DatabaseDTO> dtos) throws ApiOperationException
      Methode prüft vor dem Löschen, ob alle Vorbedingungen zum Löschen erfüllt sind. Standardmäßig hat diese Methode keine Implementierung. Wenn eine Prüfung durchgeführt werden soll, muss diese Methode überschrieben werden.
      Parameter:
      dtos - die Datanbank-DTOs, die gelöscht werden sollen
      Löst aus:
      ApiOperationException - im Fehlerfall
    • checkBeforeCreation

      public void checkBeforeCreation(ID newID, Map<String,Object> initAttributes) throws ApiOperationException
      Methode prüft vor dem Erstellen eines neuen Datenbank-DTOs, ob alle Vorbedingungen zum Erstellen erfüllt sind. Standardmäßig hat diese Methode keine Implementierung. Wenn eine Prüfung durchgeführt werden soll, muss diese Methode überschrieben werden.
      Parameter:
      newID - die neue ID für das DTO
      initAttributes - die Map mit den initialen Attributen für das neue DTO
      Löst aus:
      ApiOperationException - wird geworfen, wenn eine Vorbedingung nicht erfüllt wurde
    • checkBeforePatch

      public void checkBeforePatch(DatabaseDTO dto, Map<String,Object> patchAttributes) throws ApiOperationException
      Methode prüft vor dem Patchen eines Datenbank-DTOs, ob alle Vorbedingungen zum Patch erfüllt sind. Standardmäßig hat diese Methode keine Implementierung. Wenn eine Prüfung durchgeführt werden soll, muss diese Methode überschrieben werden.
      Parameter:
      dto - das DTO
      patchAttributes - die Map mit den zu patchenden Attributen für das DTO
      Löst aus:
      ApiOperationException - wird geworfen, wenn eine Vorbedingung nicht erfüllt wurde
    • patch

      public CoreDTO patch(ID id, Map<String,Object> attributesToPatch) throws ApiOperationException
      Passt die Informationen des Datenbank-DTO mit der angegebenen ID mithilfe des JSON-Patches aus dem übergebenen InputStream an. Dabei werden nur die übergebenen Mappings zugelassen.
      Parameter:
      id - die ID des zu patchenden DTOs
      attributesToPatch - die Map mit dem Mapping der Attributnamen auf die Werte der Attribute im Patch
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • add

      public CoreDTO add(Map<String,Object> initAttributes) throws ApiOperationException
      Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden. Um zu gewährleisten, dass der Primärschlüssel angelegt ist, wird das Patchen von einzelnen Attributen zurückgestellt und erst nach dem Persistieren des Objektes in einem zweiten Schritt durchgeführt.
      Parameter:
      initAttributes - die Map mit den initialen Attributen für das neue DTO
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addFromMapAsResponse

      public jakarta.ws.rs.core.Response addFromMapAsResponse(Map<String,Object> initAttributes) throws ApiOperationException
      Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden. Um zu gewährleisten, dass der Primärschlüssel angelegt ist, wird das Patchen von einzelnen Attributen zurückgestellt und erst nach dem Persistieren des Objektes in einem zweiten Schritt durchgeführt.
      Parameter:
      initAttributes - die Map mit den initialen Attributen für das neue DTO
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addBasic

      protected CoreDTO addBasic(ID newID, Map<String,Object> initAttributes) throws ApiOperationException
      Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden. Um zu gewährleisten, dass der Primärschlüssel angelegt ist, wird das Patchen von einzelnen Attributen zurückgestellt und erst nach dem Persistieren des Objektes in einem zweiten Schritt durchgeführt.
      Parameter:
      newID - die neue ID für das DTO
      initAttributes - die Map mit den initialen Attributen für das neue DTO
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • addFromStream

      public CoreDTO addFromStream(InputStream is) throws ApiOperationException
      Fügt ein neues DTO des übergebenen Typ in die Datenbank hinzu, indem in der Datenbank eine neue ID abgefragt wird und die Attribute des JSON-Objektes gemäß dem Attribut-Mapper integriert werden. Um zu gewährleisten, dass der Primärschlüssel angelegt ist, wird das Patchen von einzelnen Attributen zurückgestellt und erst nach dem Persistieren des Objektes in einem zweiten Schritt durchgeführt.
      Parameter:
      is - der Input-Stream
      Gibt zurück:
      das Core-DTO
      Löst aus:
      ApiOperationException - im Fehlerfall
    • saveDatabaseDTO

      protected void saveDatabaseDTO(DatabaseDTO dto) throws ApiOperationException
      Methode persistiert das übergebene Datenbank-DTO in der Datenbank.
      Parameter:
      dto - Datenbank-DTO, das persistiert werden soll
      Löst aus:
      ApiOperationException - im Fehlerfall
    • deleteDatabaseDTO

      protected void deleteDatabaseDTO(DatabaseDTO dto) throws ApiOperationException
      Methode löscht das übergebene Datenbank-DTO aus der Datenbank.
      Parameter:
      dto - Datenbank-DTO, das gelöscht werden soll
      Löst aus:
      ApiOperationException - im Fehlerfall
    • getNextID

      protected ID getNextID(ID lastID, Map<String,Object> initAttributes) throws ApiOperationException
      Bestimmt die nächste ID für ein neues Datenbank-DTO.
      Parameter:
      lastID - die letzte ID
      initAttributes - die Map mit den initialen Attributen für das neue DTO
      Gibt zurück:
      die neue ID
      Löst aus:
      ApiOperationException - im Fehlerfall
    • createNextLongID

      protected Long createNextLongID(Long lastID)
      Erzeugt die nächste default ID vom Typ Long für ein neues Datenbank-DTO.
      Parameter:
      lastID - die letzte ID
      Gibt zurück:
      die neue default ID