AbschlussFaecherGruppen.ts 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import { JavaObject, cast_java_lang_Object } from '../../../java/lang/JavaObject';
  2. import { GEAbschlussFach, cast_de_nrw_schule_svws_core_data_abschluss_GEAbschlussFach } from '../../../core/data/abschluss/GEAbschlussFach';
  3. import { StringBuilder, cast_java_lang_StringBuilder } from '../../../java/lang/StringBuilder';
  4. import { List, cast_java_util_List } from '../../../java/util/List';
  5. import { JavaString, cast_java_lang_String } from '../../../java/lang/JavaString';
  6. import { AbschlussFaecherGruppe, cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppe } from '../../../core/abschluss/ge/AbschlussFaecherGruppe';
  7. import { Predicate, cast_java_util_function_Predicate } from '../../../java/util/function/Predicate';
  8. export class AbschlussFaecherGruppen extends JavaObject {
  9. public readonly fg1 : AbschlussFaecherGruppe;
  10. public readonly fg2 : AbschlussFaecherGruppe;
  11. /**
  12. * Erzeugt eine neues Objekt AbschlussFaecherGruppen
  13. *
  14. * @param fg1 die Fächergruppe 1
  15. * @param fg2 die Fächergruppe 2
  16. */
  17. public constructor(fg1 : AbschlussFaecherGruppe, fg2 : AbschlussFaecherGruppe) {
  18. super();
  19. this.fg1 = fg1;
  20. this.fg2 = fg2;
  21. }
  22. /**
  23. * Prüft, ob eine der beiden Fächergruppen leer ist.
  24. *
  25. * @return true, falls eine der beiden Fächergruppen leer ist.
  26. */
  27. public isEmpty() : boolean {
  28. return this.fg1 === null || this.fg2 === null || this.fg1.isEmpty() || this.fg2.isEmpty();
  29. }
  30. /**
  31. * Prüft, ob das Fach mit dem angegebenen Fachkürzel in einer der beiden
  32. * Fächergruppen enthalten ist oder nicht.
  33. *
  34. * @param kuerzel das Kürzel des Faches, welches geprüft werden soll.
  35. *
  36. * @return true, falls das Fach vorhanden ist, und ansonsten false
  37. */
  38. public contains(kuerzel : String | null) : boolean {
  39. return this.fg1.contains(kuerzel) || this.fg2.contains(kuerzel);
  40. }
  41. /**
  42. * Bestimmt alle Fächer beider Fächergruppen, welche dem übergebenen
  43. * Filterkriterium entsprechen.
  44. *
  45. * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
  46. *
  47. * @return eine Liste der Fächer, die dem Filterkriterium entsprechen
  48. */
  49. public getFaecher(filter : Predicate<GEAbschlussFach>) : List<GEAbschlussFach> {
  50. let faecher : List<GEAbschlussFach> = this.fg1.getFaecher(filter);
  51. faecher.addAll(this.fg2.getFaecher(filter));
  52. return faecher;
  53. }
  54. /**
  55. * Gibt die Anzahl der Fächer beider Fächergruppen zurück, welche dem übergebenen
  56. * Filterkriterium entsprechen.
  57. *
  58. * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
  59. *
  60. * @return die Anzahl der Fächer
  61. */
  62. public getFaecherAnzahl(filter : Predicate<GEAbschlussFach>) : number {
  63. return this.fg1.getFaecherAnzahl(filter) + this.fg2.getFaecherAnzahl(filter);
  64. }
  65. /**
  66. * Bestimmt die Kürzel aller Fächer beider Fächergruppen, welche dem übergebenen
  67. * Filterkriterium entsprechen.
  68. *
  69. * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
  70. *
  71. * @return eine Liste der Kürzel der Fächer, die dem Filterkriterium entsprechen
  72. */
  73. public getKuerzel(filter : Predicate<GEAbschlussFach>) : List<String> {
  74. let faecher : List<String> = this.fg1.getKuerzel(filter);
  75. faecher.addAll(this.fg2.getKuerzel(filter));
  76. return faecher;
  77. }
  78. /**
  79. * Erstellt eine Zeichenkette mit einer Komma-separierten Liste der Kürzel aller Fächer
  80. * beider Fächergruppen, welche dem übergebenen Filterkriterium entsprechen.
  81. *
  82. * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
  83. *
  84. * @return die Zeichenkette mit einer Komma-separierten Liste der Fächerkürzel
  85. */
  86. public getKuerzelListe(filter : Predicate<GEAbschlussFach>) : String;
  87. /**
  88. * Erstellt eine Zeichenkette mit einer Komma-separierten Liste der Kürzel aller Fächer
  89. * beider Fächergruppen, welche dem übergebenen Filterkriterium entsprechen. Dabei
  90. * werden für die Fächergruppen jedoch unterschiedliche Filterkriterien angewendet.
  91. *
  92. * @param filterFG1 die Funktion, die das Kriterium für die gesuchten Fächer der Fächergruppe 1 angibt.
  93. * @param filterFG2 die Funktion, die das Kriterium für die gesuchten Fächer der Fächergruppe 2 angibt.
  94. *
  95. * @return die Zeichenkette mit einer Komma-separierten Liste der Fächerkürzel
  96. */
  97. public getKuerzelListe(filterFG1 : Predicate<GEAbschlussFach>, filterFG2 : Predicate<GEAbschlussFach>) : String;
  98. /**
  99. * Implementation for method overloads of 'getKuerzelListe'
  100. */
  101. public getKuerzelListe(__param0 : Predicate<GEAbschlussFach>, __param1? : Predicate<GEAbschlussFach>) : String {
  102. if (((typeof __param0 !== "undefined") && ((typeof __param0 !== 'undefined') && (__param0 instanceof Object) && (__param0 !== null) && ('test' in __param0) && (typeof __param0.test === 'function')) || (__param0 === null)) && (typeof __param1 === "undefined")) {
  103. let filter : Predicate<GEAbschlussFach> = cast_java_util_function_Predicate(__param0);
  104. let sb : StringBuilder = new StringBuilder();
  105. let faecher : List<String> = this.getKuerzel(filter);
  106. for (let fach of faecher) {
  107. if (sb.length() > 0)
  108. sb.append(", ");
  109. sb.append(fach);
  110. }
  111. return sb.toString();
  112. } else if (((typeof __param0 !== "undefined") && ((typeof __param0 !== 'undefined') && (__param0 instanceof Object) && (__param0 !== null) && ('test' in __param0) && (typeof __param0.test === 'function')) || (__param0 === null)) && ((typeof __param1 !== "undefined") && ((typeof __param1 !== 'undefined') && (__param1 instanceof Object) && (__param1 !== null) && ('test' in __param1) && (typeof __param1.test === 'function')) || (__param1 === null))) {
  113. let filterFG1 : Predicate<GEAbschlussFach> = cast_java_util_function_Predicate(__param0);
  114. let filterFG2 : Predicate<GEAbschlussFach> = cast_java_util_function_Predicate(__param1);
  115. let sb : StringBuilder = new StringBuilder();
  116. let faecherFG1 : List<String> = this.fg1.getKuerzel(filterFG1);
  117. let faecherFG2 : List<String> = this.fg2.getKuerzel(filterFG2);
  118. for (let fach of faecherFG1) {
  119. if (sb.length() > 0)
  120. sb.append(", ");
  121. sb.append(fach);
  122. }
  123. for (let fach of faecherFG2) {
  124. if (sb.length() > 0)
  125. sb.append(", ");
  126. sb.append(fach);
  127. }
  128. return sb.toString();
  129. } else throw new Error('invalid method overload');
  130. }
  131. isTranspiledInstanceOf(name : string): boolean {
  132. return ['de.nrw.schule.svws.core.abschluss.ge.AbschlussFaecherGruppen'].includes(name);
  133. }
  134. }
  135. export function cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppen(obj : unknown) : AbschlussFaecherGruppen {
  136. return obj as AbschlussFaecherGruppen;
  137. }