Logger.ts 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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 { JavaString, cast_java_lang_String } from '../java/lang/JavaString';
  5. import { Vector, cast_java_util_Vector } from '../java/util/Vector';
  6. import { LogLevel, cast_de_nrw_schule_svws_logger_LogLevel } from '../logger/LogLevel';
  7. export class Logger extends JavaObject {
  8. private readonly consumer : Vector<Consumer<LogData>> = new Vector();
  9. private defaultLevel : LogLevel = LogLevel.INFO;
  10. private indent : number = 0;
  11. public constructor() {
  12. super();
  13. }
  14. /**
  15. * Fügt einen Consumer für Log-Informationen zum Logger hinzu.
  16. *
  17. * @param c der hinzuzufügende Consumer von Log-Informationen
  18. */
  19. public addConsumer(c : Consumer<LogData>) : void {
  20. this.consumer.add(c);
  21. }
  22. /**
  23. * Fügt alle Consumer des anderen Loggers zu diesem hinzu.
  24. *
  25. * @param other der andere Logger
  26. */
  27. public copyConsumer(other : Logger) : void {
  28. this.consumer.addAll(other.consumer);
  29. }
  30. /**
  31. * Entfernt den angegeben Consumer für Log-Informationen aus dem Logger.
  32. *
  33. * @param c der zu entfernende Consumer von Log-Informationen
  34. */
  35. public removeConsumer(c : Consumer<LogData>) : void {
  36. this.consumer.remove(c);
  37. }
  38. /**
  39. * Gibt das aktuelle Default-Log-Level für neue Log-Informationen zurück.
  40. *
  41. * @return das aktuelle Default-Log-Level für neue Log-Informationen
  42. */
  43. public getDefaultLevel() : LogLevel {
  44. return this.defaultLevel;
  45. }
  46. /**
  47. * Setzt das Default-Log-Level für neue Log-Informationen.
  48. *
  49. * @param defaultLevel das neue Default-Log-Level für neue Log-Informationen
  50. */
  51. public setDefaultLevel(defaultLevel : LogLevel) : void {
  52. this.defaultLevel = defaultLevel;
  53. }
  54. /**
  55. * Setzt die Anzahl der Leerzeichen, die für die Einrückung bei einer Ausgabe von
  56. * neuen Log-Informationen genutzt wird.
  57. *
  58. * @param indent die Anzahl der Leerzeichen
  59. */
  60. public setIndent(indent : number) : void {
  61. this.indent = (indent < 0) ? 0 : indent;
  62. }
  63. /**
  64. * Verändert die Anzahl der Leerzeichen, die für die Einrückung bei einer Ausgabe von
  65. * neuen Log-Informationen genutzt wird.
  66. *
  67. * @param indent die Veränderung bei der Anzahl der Leerzeichen
  68. */
  69. public modifyIndent(indent : number) : void {
  70. this.indent = (this.indent + indent < 0) ? 0 : this.indent + indent;
  71. }
  72. /**
  73. * Loggt die übergebenen Log-Informationen bei diesem Debugger.
  74. *
  75. * @param data die Log-Informationen
  76. */
  77. public log(data : LogData) : void;
  78. /**
  79. * Loggt den angebenen Text mit dem angegebenen Log-Level und der angebenen Einrückung.
  80. *
  81. * @param level das Log-Level des zu loggenden Textes
  82. * @param indent die Einrückung, die bei dem Text verwendet werden soll
  83. * @param text der Text
  84. */
  85. public log(level : LogLevel, indent : number, text : String) : void;
  86. /**
  87. * Loggt den angebenen Text mit dem angegebenen Log-Level und der Standard-Einrückung.
  88. *
  89. * @param level das Log-Level des zu loggenden Textes
  90. * @param text der Text
  91. */
  92. public log(level : LogLevel, text : String) : void;
  93. /**
  94. * Loggt den angebenen Text mit dem Standard-Log-Level und der angebenen Einrückung.
  95. *
  96. * @param indent die Einrückung, die bei dem Text verwendet werden soll
  97. * @param text der Text
  98. */
  99. public log(indent : number, text : String) : void;
  100. /**
  101. * Loggt den angebenen Text mit dem Standard-Log-Level und der Standard-Einrückung.
  102. *
  103. * @param text der Text
  104. */
  105. public log(text : String) : void;
  106. /**
  107. * Implementation for method overloads of 'log'
  108. */
  109. public log(__param0 : LogData | LogLevel | String | number, __param1? : String | number, __param2? : String) : void {
  110. if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.logger.LogData')))) && (typeof __param1 === "undefined") && (typeof __param2 === "undefined")) {
  111. let data : LogData = cast_de_nrw_schule_svws_logger_LogData(__param0);
  112. for (let i : number = 0; i < this.consumer.size(); i++){
  113. let c : Consumer<LogData> = this.consumer.get(i);
  114. if (c === null)
  115. continue;
  116. c.accept(data);
  117. }
  118. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.logger.LogLevel')))) && ((typeof __param1 !== "undefined") && typeof __param1 === "number") && ((typeof __param2 !== "undefined") && ((__param2 instanceof String) || (typeof __param2 === "string")))) {
  119. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  120. let indent : number = __param1 as number;
  121. let text : String = __param2;
  122. this.log(new LogData(level, indent, false, text));
  123. } 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"))) && (typeof __param2 === "undefined")) {
  124. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  125. let text : String = __param1;
  126. this.log(level, this.indent, text);
  127. } else if (((typeof __param0 !== "undefined") && typeof __param0 === "number") && ((typeof __param1 !== "undefined") && ((__param1 instanceof String) || (typeof __param1 === "string"))) && (typeof __param2 === "undefined")) {
  128. let indent : number = __param0 as number;
  129. let text : String = __param1;
  130. this.log(this.defaultLevel, indent, text);
  131. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof String) || (typeof __param0 === "string"))) && (typeof __param1 === "undefined") && (typeof __param2 === "undefined")) {
  132. let text : String = __param0;
  133. this.log(this.defaultLevel, text);
  134. } else throw new Error('invalid method overload');
  135. }
  136. /**
  137. * Loggt den angebenen Text mit dem angegebenen Log-Level und der angebenen Einrückung
  138. * und gibt an, dass am Ende eine neue Zeile angefangen werden soll.
  139. *
  140. * @param level das Log-Level des zu loggenden Textes
  141. * @param indent die Einrückung, die bei dem Text verwendet werden soll
  142. * @param text der Text
  143. */
  144. public logLn(level : LogLevel, indent : number, text : String) : void;
  145. /**
  146. * Loggt den angebenen Text mit dem angegebenen Log-Level und der Standard-Einrückung
  147. * und gibt an, dass am Ende eine neue Zeile angefangen werden soll.
  148. *
  149. *
  150. * @param level das Log-Level des zu loggenden Textes
  151. * @param text der Text
  152. */
  153. public logLn(level : LogLevel, text : String) : void;
  154. /**
  155. * Loggt den angebenen Text mit dem Standard-Log-Level und der angebenen Einrückung
  156. * und gibt an, dass am Ende eine neue Zeile angefangen werden soll.
  157. *
  158. * @param indent die Einrückung, die bei dem Text verwendet werden soll
  159. * @param text der Text
  160. */
  161. public logLn(indent : number, text : String) : void;
  162. /**
  163. * Loggt den angebenen Text mit dem Standard-Log-Level und der Standard-Einrückung
  164. * und gibt an, dass am Ende eine neue Zeile angefangen werden soll.
  165. *
  166. * @param text der Text
  167. */
  168. public logLn(text : String) : void;
  169. /**
  170. * Implementation for method overloads of 'logLn'
  171. */
  172. public logLn(__param0 : LogLevel | String | number, __param1? : String | number, __param2? : String) : void {
  173. if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.logger.LogLevel')))) && ((typeof __param1 !== "undefined") && typeof __param1 === "number") && ((typeof __param2 !== "undefined") && ((__param2 instanceof String) || (typeof __param2 === "string")))) {
  174. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  175. let indent : number = __param1 as number;
  176. let text : String = __param2;
  177. this.log(new LogData(level, indent, true, text));
  178. } 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"))) && (typeof __param2 === "undefined")) {
  179. let level : LogLevel = cast_de_nrw_schule_svws_logger_LogLevel(__param0);
  180. let text : String = __param1;
  181. this.logLn(level, this.indent, text);
  182. } else if (((typeof __param0 !== "undefined") && typeof __param0 === "number") && ((typeof __param1 !== "undefined") && ((__param1 instanceof String) || (typeof __param1 === "string"))) && (typeof __param2 === "undefined")) {
  183. let indent : number = __param0 as number;
  184. let text : String = __param1;
  185. this.logLn(this.defaultLevel, indent, text);
  186. } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof String) || (typeof __param0 === "string"))) && (typeof __param1 === "undefined") && (typeof __param2 === "undefined")) {
  187. let text : String = __param0;
  188. this.logLn(this.defaultLevel, text);
  189. } else throw new Error('invalid method overload');
  190. }
  191. isTranspiledInstanceOf(name : string): boolean {
  192. return ['de.nrw.schule.svws.logger.Logger'].includes(name);
  193. }
  194. }
  195. export function cast_de_nrw_schule_svws_logger_Logger(obj : unknown) : Logger {
  196. return obj as Logger;
  197. }