Naturwissenschaften.ts 5.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import { JavaObject, cast_java_lang_Object } from '../../../../java/lang/JavaObject';
  2. import { GostFachbereich, cast_de_nrw_schule_svws_core_types_gost_GostFachbereich } from '../../../../core/types/gost/GostFachbereich';
  3. import { AbiturFachbelegung, cast_de_nrw_schule_svws_core_data_gost_AbiturFachbelegung } from '../../../../core/data/gost/AbiturFachbelegung';
  4. import { GostBelegpruefungsArt, cast_de_nrw_schule_svws_core_abschluss_gost_GostBelegpruefungsArt } from '../../../../core/abschluss/gost/GostBelegpruefungsArt';
  5. import { GostSchriftlichkeit, cast_de_nrw_schule_svws_core_types_gost_GostSchriftlichkeit } from '../../../../core/types/gost/GostSchriftlichkeit';
  6. import { GostHalbjahr, cast_de_nrw_schule_svws_core_types_gost_GostHalbjahr } from '../../../../core/types/gost/GostHalbjahr';
  7. import { List, cast_java_util_List } from '../../../../java/util/List';
  8. import { GostBelegpruefung, cast_de_nrw_schule_svws_core_abschluss_gost_GostBelegpruefung } from '../../../../core/abschluss/gost/GostBelegpruefung';
  9. import { AbiturdatenManager, cast_de_nrw_schule_svws_core_abschluss_gost_AbiturdatenManager } from '../../../../core/abschluss/gost/AbiturdatenManager';
  10. import { GostBelegungsfehler, cast_de_nrw_schule_svws_core_abschluss_gost_GostBelegungsfehler } from '../../../../core/abschluss/gost/GostBelegungsfehler';
  11. export class Naturwissenschaften extends GostBelegpruefung {
  12. private naturwissenschaften : List<AbiturFachbelegung> | null = null;
  13. private naturwissenschaften_klassisch : List<AbiturFachbelegung> | null = null;
  14. private anzahl_durchgehend : number = 0;
  15. private anzahl_schriftlich_durchgehend : number = 0;
  16. /**
  17. * Erstellt eine neue Belegprüfung für das Fach Mathematik.
  18. *
  19. * @param manager der Daten-Manager für die Abiturdaten
  20. * @param pruefungs_art die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT)
  21. */
  22. public constructor(manager : AbiturdatenManager, pruefungs_art : GostBelegpruefungsArt) {
  23. super(manager, pruefungs_art);
  24. }
  25. protected init() : void {
  26. this.naturwissenschaften = this.manager.getFachbelegungen(GostFachbereich.NATURWISSENSCHAFTLICH);
  27. this.naturwissenschaften_klassisch = this.manager.getFachbelegungen(GostFachbereich.NATURWISSENSCHAFTLICH_KLASSISCH);
  28. this.anzahl_durchgehend = 0;
  29. this.anzahl_schriftlich_durchgehend = 0;
  30. }
  31. protected pruefeEF1() : void {
  32. if (!this.manager.pruefeBelegungDurchgehendBelegbarExistiert(this.naturwissenschaften_klassisch, GostSchriftlichkeit.BELIEBIG, GostHalbjahr.EF1))
  33. this.addFehler(GostBelegungsfehler.NW_10);
  34. if (!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.naturwissenschaften_klassisch, GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr.EF1))
  35. this.addFehler(GostBelegungsfehler.NW_11);
  36. let fachbelegungen : List<AbiturFachbelegung> | null = this.manager.filterDurchgehendBelegbar(this.naturwissenschaften);
  37. fachbelegungen = this.manager.filterBelegungen(fachbelegungen, GostHalbjahr.EF1);
  38. this.anzahl_durchgehend = fachbelegungen === null ? 0 : fachbelegungen.size();
  39. fachbelegungen = this.manager.filterBelegungenMitSchriftlichkeit(fachbelegungen, GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr.EF1);
  40. this.anzahl_schriftlich_durchgehend = fachbelegungen === null ? 0 : fachbelegungen.size();
  41. }
  42. protected pruefeGesamt() : void {
  43. if (!this.manager.pruefeBelegungExistiert(this.naturwissenschaften_klassisch, GostHalbjahr.EF1, GostHalbjahr.EF2, GostHalbjahr.Q11, GostHalbjahr.Q12, GostHalbjahr.Q21, GostHalbjahr.Q22))
  44. this.addFehler(GostBelegungsfehler.NW_10);
  45. if ((!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.naturwissenschaften_klassisch, GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr.EF1)) || (!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.naturwissenschaften_klassisch, GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr.EF2)))
  46. this.addFehler(GostBelegungsfehler.NW_11);
  47. this.anzahl_durchgehend = this.manager.zaehleBelegungenDurchgaengig(this.naturwissenschaften);
  48. this.anzahl_schriftlich_durchgehend = this.manager.zaehleBelegungenDurchgaengigSchriftlichInQPhase(this.naturwissenschaften);
  49. }
  50. /**
  51. * Gibt die Anzahl der durchgehend belegten bzw. belegbaren Naturwissenschaften zurück.
  52. *
  53. * @return die Anzahl der durchgehend belegten bzw. belegbaren Naturwissenschaften zurück.
  54. */
  55. public getAnzahlDurchgehendBelegt() : number {
  56. return this.anzahl_durchgehend;
  57. }
  58. /**
  59. * Gibt die Anzahl der durchgehend schriftlich belegten bzw. belegbaren Naturwissenschaften zurück.
  60. * Durchgehend schriftlich bedeutet, dass das Fach mind. von Q1.1 bus Q2.1 schriftlich belegt wurde.
  61. *
  62. * @return die Anzahl der durchgehend schriftlich belegten bzw. belegbaren Naturwissenschaften zurück.
  63. */
  64. public getAnzahlDurchgehendSchritflichBelegt() : number {
  65. return this.anzahl_schriftlich_durchgehend;
  66. }
  67. isTranspiledInstanceOf(name : string): boolean {
  68. return ['de.nrw.schule.svws.core.abschluss.gost.GostBelegpruefung', 'de.nrw.schule.svws.core.abschluss.gost.belegpruefung.Naturwissenschaften'].includes(name);
  69. }
  70. }
  71. export function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Naturwissenschaften(obj : unknown) : Naturwissenschaften {
  72. return obj as Naturwissenschaften;
  73. }