LogConsumerVector.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. import { JavaObject, cast_java_lang_Object } from '../java/lang/JavaObject';
  2. import { LogData, cast_de_nrw_schule_svws_logger_LogData } from '../logger/LogData';
  3. import { Consumer, cast_java_util_function_Consumer } from '../java/util/function/Consumer';
  4. import { StringBuilder, cast_java_lang_StringBuilder } from '../java/lang/StringBuilder';
  5. import { List, cast_java_util_List } from '../java/util/List';
  6. import { JavaString, cast_java_lang_String } from '../java/lang/JavaString';
  7. import { Vector, cast_java_util_Vector } from '../java/util/Vector';
  8. import { LogLevel, cast_de_nrw_schule_svws_logger_LogLevel } from '../logger/LogLevel';
  9. export class LogConsumerVector extends JavaObject implements Consumer<LogData> {
  10. public readonly printTime : boolean;
  11. public readonly printLevel : boolean;
  12. private readonly logData : Vector<LogData> = new Vector();
  13. /**
  14. * Erzeugt einen neuen Consumer für Log-Informationen, mit den Standardeinstellungen,
  15. * das weder Zeit noch Log-Level mit ausgegeben werden.
  16. */
  17. public constructor();
  18. /**
  19. * Erzeugt einen neuen Consumer für Log-Informationen.
  20. *
  21. * @param printTime gibt an, ob die Zeit beim Loggen ausgegeben wird oder nicht
  22. * @param printLevel gibt an, ob das Log-Level beim Loggen ausgegeben wird oder nicht
  23. */
  24. public constructor(printTime : boolean, printLevel : boolean);
  25. /**
  26. * Implementation for method overloads of 'constructor'
  27. */
  28. public constructor(__param0? : boolean, __param1? : boolean) {
  29. super();
  30. if ((typeof __param0 === "undefined") && (typeof __param1 === "undefined")) {
  31. this.printTime = false;
  32. this.printLevel = false;
  33. } else if (((typeof __param0 !== "undefined") && typeof __param0 === "boolean") && ((typeof __param1 !== "undefined") && typeof __param1 === "boolean")) {
  34. let printTime : boolean = __param0 as boolean;
  35. let printLevel : boolean = __param1 as boolean;
  36. this.printTime = printTime;
  37. this.printLevel = printLevel;
  38. } else throw new Error('invalid method overload');
  39. }
  40. /**
  41. * Hängt einen anderen Log vom gleichen Typ an diesen an.
  42. *
  43. * @param log der anzuhängende Log
  44. */
  45. public append(log : LogConsumerVector) : void {
  46. this.logData.addAll(log.logData);
  47. }
  48. /**
  49. * Diese Methode implementiert das funktionale Interface java.util.function.Consumer
  50. * und hängt die empfangenen Log-Informationen an den Vektor an.
  51. *
  52. * @param t die anzuhängenden Log-Informationen
  53. */
  54. public accept(t : LogData | null) : void {
  55. if (t === null)
  56. return;
  57. this.logData.add(t);
  58. }
  59. /**
  60. * Gibt den Vektor mit den gesammelten Log-Informationen zurück.
  61. *
  62. * @return der Vektor mit den gesammelten Log-Informationen
  63. */
  64. public getLogData() : List<LogData> {
  65. return this.logData;
  66. }
  67. /**
  68. * Gibt die gesammelten Log-Informationen als Liste von Strings zurück.
  69. *
  70. * @return die gesammelten Log-Informationen als Liste von Strings
  71. */
  72. public getStrings() : List<String> | null;
  73. /**
  74. * Gibt die gesammelten Log-Informationen als Liste von Strings zurück, die alle
  75. * als Präfix indet erhalten. Dies dient z.B. dem Einrücken der Log-Informationen.
  76. *
  77. * @param indent das Präfix, welches zum Einrücken der Log-Informationen genutzt wird
  78. *
  79. * @return die gesammelten Log-Informationen als Liste von Strings
  80. */
  81. public getStrings(indent : String) : List<String> | null;
  82. /**
  83. * Implementation for method overloads of 'getStrings'
  84. */
  85. public getStrings(__param0? : String) : List<String> | null {
  86. if ((typeof __param0 === "undefined")) {
  87. return this.getStrings("");
  88. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof String) || (typeof __param0 === "string")))) {
  89. let indent : String = __param0;
  90. let result : Vector<String> | null = new Vector();
  91. for (let i : number = 0; i < this.logData.size(); i++){
  92. let data : LogData = this.logData.get(i);
  93. if (data === null)
  94. continue;
  95. result.add(indent.valueOf() + data.getText().valueOf());
  96. }
  97. return result;
  98. } else throw new Error('invalid method overload');
  99. }
  100. /**
  101. * Gibt die gesammelten Log-Informationen als Text zurück, bei dem
  102. * die einzelnen Log-Informationen durch Zeilenumbrüche voneinander
  103. * getrennt werden. Dabei werden Informationen ausgelassen,
  104. * die aufgrund des hier vorgegebenen Log-Levels LogLevel.INFO nicht
  105. * berücksichtigt werden sollen.
  106. *
  107. * @return der Text der Log-Informationen für das Log-Level LogLevel.INFO
  108. */
  109. public getText() : String;
  110. /**
  111. * Gibt die gesammelten Log-Informationen als Text zurück, bei dem
  112. * die einzelnen Log-Informationen durch Zeilenumbrüche voneinander
  113. * getrennt werden. Dabei werden Informationen ausgelassen,
  114. * die aufgrund des angebenen Log-Levels nicht berücksichtigt werden
  115. * sollen.
  116. *
  117. * @param level das Log-Level, welches mindestens geben sein muss, damit die
  118. * Log-Informationen berücksichtigt werden.
  119. *
  120. * @return der Text der Log-Informationen für das angegebene Log-Level
  121. */
  122. public getText(level : LogLevel) : String;
  123. /**
  124. * Gibt die gesammelten Log-Informationen als Text zurück, bei dem
  125. * die einzelnen Log-Informationen durch Zeilenumbrüche voneinander
  126. * getrennt werden. Dabei werden Informationen ausgelassen,
  127. * die aufgrund des angebenen Log-Levels nicht berücksichtigt werden
  128. * sollen.
  129. *
  130. * @param level das Log-Level, welches mindestens geben sein muss, damit die
  131. * Log-Informationen berücksichtigt werden.
  132. * @param indent das Präfix, welches zum Einrücken der Log-Informationen genutzt wird
  133. *
  134. * @return der Text der Log-Informationen für das angegebene Log-Level
  135. */
  136. public getText(level : LogLevel, indent : String) : String;
  137. /**
  138. * Implementation for method overloads of 'getText'
  139. */
  140. public getText(__param0? : LogLevel, __param1? : String) : String {
  141. if ((typeof __param0 === "undefined") && (typeof __param1 === "undefined")) {
  142. return this.getText(LogLevel.INFO, "");
  143. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.logger.LogLevel')))) && (typeof __param1 === "undefined")) {
  144. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  145. return this.getText(level, "");
  146. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.logger.LogLevel')))) && ((typeof __param1 !== "undefined") && ((__param1 instanceof String) || (typeof __param1 === "string")))) {
  147. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  148. let indent : String = __param1;
  149. let sb : StringBuilder | null = new StringBuilder();
  150. for (let i : number = 0; i < this.logData.size(); i++){
  151. let data : LogData | null = this.logData.get(i);
  152. if (data === null)
  153. continue;
  154. if (data.getLevel().toInteger() > level.toInteger())
  155. continue;
  156. sb.append(indent);
  157. sb.append(data.getText());
  158. sb.append("\n");
  159. }
  160. return sb.toString();
  161. } else throw new Error('invalid method overload');
  162. }
  163. isTranspiledInstanceOf(name : string): boolean {
  164. return ['java.util.function.Consumer', 'de.nrw.schule.svws.logger.LogConsumerVector'].includes(name);
  165. }
  166. }
  167. export function cast_de_nrw_schule_svws_logger_LogConsumerVector(obj : unknown) : LogConsumerVector {
  168. return obj as LogConsumerVector;
  169. }