Klasse ReportingRepository

java.lang.Object
de.svws_nrw.module.reporting.repositories.ReportingRepository

public class ReportingRepository extends Object

Dieses Repository enthält neben den Stammdaten der Schule Maps, in denen Objekte wie Kataloge, Jahrgänge, Klassen, Lehrer, Schüler usw. gespeichert werden. So sollen Datenbankzugriffe minimiert werden.

Des Weiteren kann diese Klasse genutzt werden, um die Maps bereits vor der Erstellung der eigentlichen Reporting-Objekte zu füllen, beispielsweise mit Daten aus im Vorfeld durchgeführten Prüfungen bei API-Abfragen. So müssen diese Daten nicht erneut aus der Datenbank geladen werden.

Werden in anderen Klassen Daten nachgeladen, so werden diese in der Regel auch in der entsprechenden Map des Repository ergänzt.

Ebenso werden einige bereits erzeugte Reporting-Objekte hier zwischengespeichert.

  • Konstruktordetails

    • ReportingRepository

      public ReportingRepository(DBEntityManager conn, ReportingParameter reportingParameter, Logger logger, LogConsumerList log) throws ApiOperationException
      Erstellt das Repository für häufig genutzte Daten aus der Schuldatenbank, um Zugriffe darauf zu minimieren. Ebenso werden einzelne Reporting-Objekte hier zwischengespeichert.
      Parameter:
      conn - Die Verbindung zur Datenbank.
      reportingParameter - Einstellungen und Daten zum Steuern der Report-Generierung.
      logger - Logger, der den Ablauf protokolliert und Fehlerdaten sammelt.
      log - Die Liste, die Einträge aus dem Logger sammelt.
      Löst aus:
      ApiOperationException - Im Fehlerfall wird eine ApiOperationException ausgelöst und Log-Daten zusammen mit dieser zurückgegeben.
  • Methodendetails

    • conn

      public DBEntityManager conn()
      Die Verbindung zu Datenbank.
      Gibt zurück:
      Inhalt des Feldes conn
    • log

      public LogConsumerList log()
      Die Liste, die Einträge aus dem Logger sammelt.
      Gibt zurück:
      Inhalt des Feldes log
    • logger

      public Logger logger()
      Logger, der den Ablauf protokolliert und Fehlerdaten sammelt.
      Gibt zurück:
      Inhalt des Feldes logger
    • reportingParameter

      public ReportingParameter reportingParameter()
      Einstellungen und Daten zum Steuern der Report-Generierung.
      Gibt zurück:
      Inhalt des Feldes reportingParameter
    • schulstammdaten

      public SchuleStammdaten schulstammdaten()
      Stellt die Stammdaten der Schule aus der Datenbankverbindung zur Verfügung
      Gibt zurück:
      Stammdaten der Schule
    • schuljahresabschnitte

      public List<ReportingSchuljahresabschnitt> schuljahresabschnitte()
      Stellt eine sortierte Liste aller Schuljahresabschnitte der Schule aus der Datenbankverbindung zur Verfügung
      Gibt zurück:
      Alle Schuljahresabschnitte der Schule
    • schuljahresabschnitt

      public ReportingSchuljahresabschnitt schuljahresabschnitt(long id)
      Stellt den angeforderten Schuljahresabschnitt der Schule aus der Datenbankverbindung zur Verfügung
      Parameter:
      id - Die ID des angeforderten Schuljahresabschnitts
      Gibt zurück:
      Schuljahresabschnitt der Schule zur ID
    • schuljahresabschnitt

      public ReportingSchuljahresabschnitt schuljahresabschnitt(int schuljahr, int abschnitt)
      Stellt den angeforderten Schuljahresabschnitt der Schule aus der Datenbankverbindung zur Verfügung
      Parameter:
      schuljahr - Das Schuljahr des angeforderten Schuljahresabschnitts
      abschnitt - Der Abschnitt des angeforderten Schuljahresabschnitts
      Gibt zurück:
      Schuljahresabschnitt der Schule zu den Parametern oder null, wenn der Abschnitt nicht existiert.
    • aktuellerSchuljahresabschnitt

      public ReportingSchuljahresabschnitt aktuellerSchuljahresabschnitt()
      Stellt den aktuellen Schuljahresabschnitt der Schule aus der Datenbankverbindung zur Verfügung
      Gibt zurück:
      Aktueller Schuljahresabschnitt der Schule
    • auswahlSchuljahresabschnitt

      public ReportingSchuljahresabschnitt auswahlSchuljahresabschnitt()
      Der ausgewählte Schuljahresabschnitt, der für die Ausgabe der Reports ausgewählt wurde
      Gibt zurück:
      Schuljahresabschnitt der Auswahl für den Druck
    • katalogEntlassgruende

      public Map<Long,KatalogEntlassgrund> katalogEntlassgruende()
      Stellt eine Map der Entlassgründe der Schule aus der Datenbankverbindung zu deren IDs zur Verfügung
      Gibt zurück:
      Map der Entlassgründe
    • katalogFoerderschwerpunkte

      public Map<Long,FoerderschwerpunktEintrag> katalogFoerderschwerpunkte()
      Stellt eine Map der Förderschwerpunkt-Katalog-Einträge der Schule aus der Datenbankverbindung zu deren IDs zur Verfügung
      Gibt zurück:
      Map der Förderschwerpunkt-Katalog-Einträge
    • katalogOrte

      public Map<Long,OrtKatalogEintrag> katalogOrte()
      Stellt eine Map der Ort-Katalog-Einträge der Schule aus der Datenbankverbindung zu deren IDs zur Verfügung
      Gibt zurück:
      Map der Ort-Katalog-Einträge
    • katalogOrtsteile

      public Map<Long,OrtsteilKatalogEintrag> katalogOrtsteile()
      Stellt eine Map der Ortsteil-Katalog-Einträge der Schule aus der Datenbankverbindung zu deren IDs zur Verfügung
      Gibt zurück:
      Map der Ortsteil-Katalog-Einträge
    • katalogReligionen

      public Map<Long,ReligionEintrag> katalogReligionen()
      Stellt die Religionen aus dem Katalog der Schule zur Religion-ID zur Verfügung
      Gibt zurück:
      Map der Religionen-Katalog-Einträge
    • katalogSchulen

      public Map<Long,SchulEintrag> katalogSchulen()
      Stellt die Schulen aus dem Katalog der Schulen der Schule zur Schul-ID zur Verfügung
      Gibt zurück:
      Map der Schul-Katalog-Einträge
    • katalogSchulformen

      public Map<Long,SchulformKatalogEintrag> katalogSchulformen()
      Stellt die Schulformen gemäß ihrer ID aus der Historie des Core-Types zur Verfügung
      Gibt zurück:
      Map der Schulform-Einträge
    • katalogTelefonnummerArten

      public Map<Long,TelefonArt> katalogTelefonnummerArten()
      Stellt die Telefonnummer-Arten zu ihrer ID zur Verfügung.
      Gibt zurück:
      Map der Telefonnummer-Arten
    • mapAlleLeistungsdaten

      public ListMap3DLongKeys<SchuelerLeistungsdaten> mapAlleLeistungsdaten()
      Stellt die Daten aller bereits abgerufenen Leistungsdaten zur Schüler-, Lernabschnitts- und Leistungsdaten-ID zur Verfügung.
      Gibt zurück:
      Map der Daten aller bereits abgerufenen Lernabschnitte.
    • mapAlleLernabschnittsdaten

      public ListMap4DLongKeys<SchuelerLernabschnittsdaten> mapAlleLernabschnittsdaten()
      Stellt die Daten aller bereits abgerufenen Lernabschnitte zur Schüler-, Schuljahresabschnitt, Wechselnummer und Lernabschnitts-ID zur Verfügung.
      Gibt zurück:
      Map der Daten aller bereits abgerufenen Lernabschnitte.
    • mapErzieherStammdaten

      public Map<Long,List<ErzieherStammdaten>> mapErzieherStammdaten()
      Stellt die Stammdaten von bereits abgerufenen Erziehern über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapErzieherStammdaten
    • mapReportingErzieherarten

      public Map<Long,ReportingErzieherArt> mapReportingErzieherarten()
      Stellt alle Erzieherarten über eine Map zur Erzieherart-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapReportingErzieherarten
    • mapFaecher

      public Map<Long,DTOFach> mapFaecher()
      Stellt alle Fächer der Schule als DTOs zur Fach-ID zur Verfügung. Die Reporting-Fächer-Objekte sind in den Schuljahresabschnitten abrufbar.
      Gibt zurück:
      Map der Fächer-DTO
    • mapGostAbiturjahrgangDaten

      public Map<Integer,GostJahrgangsdaten> mapGostAbiturjahrgangDaten()
      Stellt die Daten der Abiturjahrgänge über eine Map zum Abiturjahr zur Verfügung.
      Gibt zurück:
      Map der Daten zu den Abiturjahrgängen
    • mapGostAbiturjahrgangFaecher

      public Map<Integer,GostFaecherManager> mapGostAbiturjahrgangFaecher()
      Stellt die Fächer der Abiturjahrgänge über eine Map zum Abiturjahr zur Verfügung.
      Gibt zurück:
      Map der Fächer zu den Abiturjahrgängen
    • mapGostBeratungsdaten

      public Map<Long,GostLaufbahnplanungBeratungsdaten> mapGostBeratungsdaten()
      Stellt die Beratungsdaten zur GOSt von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung.
      Gibt zurück:
      Map mit GOSt-Beratungsdaten der Schüler
    • mapGostBeratungsdatenAbiturdaten

      public Map<Long,Abiturdaten> mapGostBeratungsdatenAbiturdaten()
      Stellt die für die Beratungsdaten zur GOSt relevanten Abiturdaten von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung.
      Gibt zurück:
      Inhalt des Feldes mapGostBeratungsdatenAbiturdaten
    • mapGostSchuelerAbiturdaten

      public Map<Long,Abiturdaten> mapGostSchuelerAbiturdaten()
      Stellt die Abiturdaten in der GOSt von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung.
      Gibt zurück:
      Map mit GOSt-Abiturdaten der Schüler
    • mapJahrgaenge

      public Map<Long,JahrgangsDaten> mapJahrgaenge()
      Stellt die Stammdaten der Jahrgänge über eine Map zur Jahrgangs-ID zur Verfügung
      Gibt zurück:
      Map der Stammdaten der Jahrgänge.
    • mapKlassen

      public Map<Long,ReportingKlasse> mapKlassen()
      Stellt alle Klassen in den Schuljahresabschnitten über eine Map zur Klassen-ID zur Verfügung.
      Gibt zurück:
      Map der Stammdaten der Klassen.
    • mapKurse

      public Map<Long,ReportingKurs> mapKurse()
      Stellt alle Kurse in den Schuljahresabschnitten über eine Map zur Kurs-ID zur Verfügung.
      Gibt zurück:
      Map der Stammdaten der Kurse.
    • mapLehrerStammdaten

      public Map<Long,LehrerStammdaten> mapLehrerStammdaten()
      Stellt die Stammdaten von bereits abgerufenen Lehrkräften über eine Map zur Lehrer-ID zur Verfügung.
      Gibt zurück:
      Map der Stammdaten von bereits abgerufenen Lehrkräften
    • mapSchuelerSchulbesuchsdaten

      public Map<Long,SchuelerSchulbesuchsdaten> mapSchuelerSchulbesuchsdaten()
      Stellt die Schulbesuchsdaten von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Map der Schulbesuchsdaten von bereits abgerufenen Schülern
    • mapSchuelerStammdaten

      public Map<Long,SchuelerStammdaten> mapSchuelerStammdaten()
      Stellt die Stammdaten von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Map der Stammdaten von bereits abgerufenen Schülern
    • mapSchueler

      public Map<Long,ReportingSchueler> mapSchueler()
      Stellt die Liste aller Schüler über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapSchueler
    • mapSchuelerTelefonkontakte

      public Map<Long,List<ReportingSchuelerTelefonkontakt>> mapSchuelerTelefonkontakte()
      Stellt die Listen aller Telefonkontakte pro Schüler für alle Schüler über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapSchuelerTelefonkontakte
    • mapSchuelerSprachbelegungen

      public Map<Long,List<Sprachbelegung>> mapSchuelerSprachbelegungen()
      Stellt die Sprachbelegungen von bereits abgerufenen Schülern über eine Map zur Schüler-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapSchuelerSprachbelegungen
    • mapSchuljahresabschnitte

      public Map<Long,ReportingSchuljahresabschnitt> mapSchuljahresabschnitte()
      Stellt die Liste aller Schuljahresabschnitte über eine Map zur Schulabschnitts-ID zur Verfügung
      Gibt zurück:
      Inhalt des Feldes mapSchuljahresabschnitte
    • stundenplandefinitionen

      public List<StundenplanListeEintrag> stundenplandefinitionen()
      Stelle eine Liste aller Stundenplandefinitionen der Schule zur Verfügung, sortiert nach Schuljahresabschnitt und Gültigkeitsbeginn.
      Gibt zurück:
      Inhalt des Feldes stundenplandefinitionen
    • klasse

      public ReportingKlasse klasse(long idKlasse)
      Liefert ein ReportingKlasse-Objekt basierend auf der gegebenen Klassen-ID. Wenn die ID negativ ist, wird null zurückgegeben. Ansonsten wird eine ProxyReportingKlasse erstellt und in der Map gespeichert, falls für die ID noch kein Eintrag existiert.
      Parameter:
      idKlasse - Die eindeutige ID der Klasse
      Gibt zurück:
      Ein ReportingKlassen-Objekt für die gegebene Klassen-ID oder null, falls die ID negativ ist
    • klassen

      public List<ReportingKlasse> klassen(List<Long> idsKlassen)
      Erzeugt und sortiert eine Liste von ReportingKlassen-Objekten basierend auf den übergebenen Klassen-IDs. Falls eine Klasse bereits existiert, wird er aus einem internen Cache abgerufen.
      Parameter:
      idsKlassen - Eine Liste von Long-Werten, die die IDs der Klassen repräsentieren, für die ReportingKlasse-Objekte erstellt werden sollen. Null- oder negative Werte in der Liste werden ignoriert.
      Gibt zurück:
      Eine sortierte Liste von ReportingKlasse-Objekten basierend auf dem Klassenkürzel.
    • lehrer

      public ReportingLehrer lehrer(long idLehrer)
      Gibt ein ReportingLehrer-Objekt für die angegebene Lehrer-ID zurück. Falls die Stammdaten des Lehrers nicht im Cache vorhanden sind, werden sie aus der Datenbank geladen.
      Parameter:
      idLehrer - Die eindeutige ID des Lehrers, für den das ReportingLehrer-Objekt erstellt werden soll. Die ID muss größer oder gleich 0 sein.
      Gibt zurück:
      Das ReportingLehrer-Objekt, falls Stammdaten gefunden wurden, oder null, wenn der Lehrer nicht existiert oder ein Fehler beim Laden der Stammdaten aufgetreten ist.
    • lehrer

      public List<ReportingLehrer> lehrer(List<Long> idsLehrer)
      Diese Methode erstellt eine Liste von ReportingLehrer-Objekten basierend auf den übergebenen Lehrerkürzeln (IDs). Fehlende Stammdaten werden bei Bedarf nachgeladen und zur weiteren Verarbeitung genutzt.
      Parameter:
      idsLehrer - Eine Liste der IDs der gewünschten Lehrer. Nullwerte oder IDs kleiner 0 werden ignoriert.
      Gibt zurück:
      Eine gemäß den konfigurierten Reporting-Parametern sortierte Liste von ReportingLehrer-Objekten.
    • schueler

      public ReportingSchueler schueler(long idSchueler)
      Holt die Reporting-Daten eines Schülers basierend auf der gegebenen ID. Falls die Schülerdaten nicht im lokalen Cache enthalten sind, werden sie aus der Datenbank abgerufen und im Cache gespeichert. Tritt ein Fehler beim Abrufen auf, wird null zurückgegeben.
      Parameter:
      idSchueler - die ID des Schülers, dessen Reporting-Daten abgerufen werden sollen (muss positiv oder 0 sein, andernfalls wird null zurückgegeben).
      Gibt zurück:
      ein ReportingSchueler-Objekt für den gegebenen Schüler, falls die Daten erfolgreich abgerufen werden konnten; sonst null.
    • schueler

      public List<ReportingSchueler> schueler(List<Long> idsSchueler)
      Liefert eine Liste von ReportingSchueler-Objekten basierend auf einer gegebenen Liste von Schüler-IDs. Diese Methode überprüft, ob die benötigten Stammdaten für die angegebenen Schüler-IDs bereits im Speicher vorhanden sind, und lädt diese gegebenenfalls aus der Datenbank nach. Anschließend werden entsprechende ReportingSchueler-Objekte erstellt und zurückgegeben.
      Parameter:
      idsSchueler - Eine Liste von Schüler-IDs, für die ReportingSchueler-Objekte erstellt und/oder zurückgegeben werden sollen; null oder eine leere Liste führt zu einer Rückgabe einer leeren Liste.
      Gibt zurück:
      Eine Liste von ReportingSchueler-Objekten, sortiert gemäß den vordefinierten oder standardmäßigen Sortierparametern, sofern definiert. Wenn keine Schüler gefunden werden, wird eine leere Liste zurückgegeben.
    • stundenplan

      public ReportingStundenplanungStundenplan stundenplan(String datum)
      Ermittelt den zum übergebenen Datum gehörigen Stundenplan und gibt ihn zurück.
      Parameter:
      datum - Das Datum im Format yyyy-mm-dd, dessen Stundenplan bestimmt werden soll.
      Gibt zurück:
      Der Stundenplan zum Datum, wenn er gefunden wird, sonst null.
    • stundenplan

      public ReportingStundenplanungStundenplan stundenplan(long idStundenplan)
      Ermittelt den zur übergebenen ID gehörigen Stundenplan und gibt ihn zurück.
      Parameter:
      idStundenplan - Die ID des Stundenplans
      Gibt zurück:
      Der Stundenplan zur ID, wenn er gefunden wird, sonst null.
    • stundenplanManager

      public StundenplanManager stundenplanManager(long idStundenplan)
      Ermittelt den zur übergebenen ID passenden StundenplanManager zurück.
      Parameter:
      idStundenplan - Die ID des Stundenplans
      Gibt zurück:
      Der StundenplanManager zur ID, wenn er gefunden wird, sonst null.