GostFachManager.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 { GostFach, cast_de_nrw_schule_svws_core_data_gost_GostFach } from '../../../core/data/gost/GostFach';
  4. import { GostHalbjahr, cast_de_nrw_schule_svws_core_types_gost_GostHalbjahr } from '../../../core/types/gost/GostHalbjahr';
  5. import { JavaString, cast_java_lang_String } from '../../../java/lang/JavaString';
  6. export class GostFachManager extends JavaObject {
  7. public constructor() {
  8. super();
  9. }
  10. /**
  11. * Gibt an, ob es sich bei dem Fach um ein Projektkursfach handelt.
  12. *
  13. * @param fach das Fach der gymnasialen Oberstufe
  14. *
  15. * @return true, falls es sich um ein Projektkursfach handelt
  16. */
  17. public static istProjektkurs(fach : GostFach) : boolean {
  18. return JavaObject.equalsTranspiler("PX", (fach.kuerzel));
  19. }
  20. /**
  21. * Gibt an, ob es sich bei dem Fach um ein Vertiefungskursfach handelt.
  22. *
  23. * @param fach das Fach der gymnasialen Oberstufe
  24. *
  25. * @return true, falls es sich um ein Vertiefungskursfach handelt
  26. */
  27. public static istVertiefungskurs(fach : GostFach) : boolean {
  28. return JavaObject.equalsTranspiler("VX", (fach.kuerzel));
  29. }
  30. /**
  31. * Gibt an, ob das Fach durchgehend von EF.1 bis Q2.2 belegbar ist;
  32. *
  33. * @param fach das Fach der gymnasialen Oberstufe
  34. *
  35. * @return true, falls es so belegbar ist, sonst false
  36. */
  37. public static istDurchgehendBelegbarBisQ22(fach : GostFach | null) : boolean {
  38. if (fach === null)
  39. return false;
  40. return fach.istMoeglichEF1 && fach.istMoeglichEF2 && fach.istMoeglichQ11 && fach.istMoeglichQ12 && fach.istMoeglichQ21 && fach.istMoeglichQ22;
  41. }
  42. /**
  43. * Gibt an, ob das Fach durchgehend von EF.1 bis EF.2 belegbar ist;
  44. *
  45. * @param fach das Fach der gymnasialen Oberstufe
  46. *
  47. * @return true, falls es so belegbar ist, sonst false
  48. */
  49. public static istBelegbarBisEF2(fach : GostFach) : boolean {
  50. return fach.istMoeglichEF1 && fach.istMoeglichEF2;
  51. }
  52. /**
  53. * Prüft, ob das Fach zu der angegebenen Sprache gehört
  54. *
  55. * @param fach das Fach der gymnasialen Oberstufe
  56. * @param sprache das Kürzel der Sprache (1. Zeichen ohne Jahrgang!)
  57. *
  58. * @return true, falls das Fach zu der angegebenen Sprache passt, sonst false
  59. */
  60. public static istFremdsprachenfach(fach : GostFach | null, sprache : String | null) : boolean {
  61. if ((fach === null) || (fach.kuerzel === null) || (JavaObject.equalsTranspiler("", (fach.kuerzel))) || !GostFachbereich.FREMDSPRACHE.hat(fach) || (sprache === null))
  62. return false;
  63. return (JavaString.compareToIgnoreCase(sprache, fach.kuerzel.substring(0, 1)) === 0);
  64. }
  65. /**
  66. * Liefert das Kürzel der Sprache (ohne Jahrgang) zurück, falls es sich um eine Sprache handelt.
  67. *
  68. * @param fach das Fach der gymnasialen Oberstufe
  69. *
  70. * @return das Kürzel der Sprache oder null
  71. */
  72. public static getFremdsprache(fach : GostFach) : String | null {
  73. if ((fach.kuerzel === null) || (JavaObject.equalsTranspiler("", (fach.kuerzel))) || !GostFachbereich.FREMDSPRACHE.hat(fach))
  74. return null;
  75. return fach.kuerzel.substring(0, 1).toUpperCase();
  76. }
  77. /**
  78. * Prüft, ob das Fach bilingual unterrichtet wird oder nicht.
  79. *
  80. * @param fach das Fach der gymnasialen Oberstufe
  81. *
  82. * @return true, falls das Fach bilingual unterrichtet wird.
  83. */
  84. public static istBilingual(fach : GostFach) : boolean {
  85. return ((fach.biliSprache !== null) && (!JavaObject.equalsTranspiler("", (fach.biliSprache))) && (!JavaObject.equalsTranspiler("D", (fach.biliSprache))));
  86. }
  87. /**
  88. * Gibt zurück, ob das Fach in dem angegebenen Halbjahr wählbar ist oder nicht.
  89. *
  90. * @param fach das Fach der gymnasialen Oberstufe
  91. * @param halbjahr das zu prüfende Halbjahr
  92. *
  93. * @return true, falls das Fach in dem Halbjahr wählbar ist, sonst false
  94. */
  95. public static istWaehlbar(fach : GostFach | null, halbjahr : GostHalbjahr) : boolean {
  96. if (fach === null)
  97. return false;
  98. if (halbjahr as unknown === GostHalbjahr.EF1 as unknown)
  99. return fach.istMoeglichEF1;
  100. if (halbjahr as unknown === GostHalbjahr.EF2 as unknown)
  101. return fach.istMoeglichEF2;
  102. if (halbjahr as unknown === GostHalbjahr.Q11 as unknown)
  103. return fach.istMoeglichQ11;
  104. if (halbjahr as unknown === GostHalbjahr.Q12 as unknown)
  105. return fach.istMoeglichQ12;
  106. if (halbjahr as unknown === GostHalbjahr.Q21 as unknown)
  107. return fach.istMoeglichQ21;
  108. if (halbjahr as unknown === GostHalbjahr.Q22 as unknown)
  109. return fach.istMoeglichQ22;
  110. return false;
  111. }
  112. isTranspiledInstanceOf(name : string): boolean {
  113. return ['de.nrw.schule.svws.core.abschluss.gost.GostFachManager'].includes(name);
  114. }
  115. }
  116. export function cast_de_nrw_schule_svws_core_abschluss_gost_GostFachManager(obj : unknown) : GostFachManager {
  117. return obj as GostFachManager;
  118. }