123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { JavaObject, cast_java_lang_Object } from '../java/lang/JavaObject';
- import { Logger, cast_de_nrw_schule_svws_logger_Logger } from '../logger/Logger';
- import { LogConsumerVector, cast_de_nrw_schule_svws_logger_LogConsumerVector } from '../logger/LogConsumerVector';
- export abstract class Service<T_IN, T_OUT> extends JavaObject {
- protected logger : Logger = new Logger();
- protected log : LogConsumerVector = new LogConsumerVector();
- /**
- * Erstellt einen neuen Service, dessen Logger automatisch in einen Vector loggt.
- */
- protected constructor() {
- super();
- this.logger.addConsumer(this.log);
- }
- /**
- * Diese Methode muss von dem erbenden Service impelemntiert werden
- * und handhabt das übergebene Input-Objekt und erzeugt das zugehörige
- * Output-Objekt.
- *
- * @param input das Input-Objekt
- *
- * @return das Output-Objekt
- */
- public abstract handle(input : T_IN | null) : T_OUT | null;
- /**
- * Gibt die Logger-Instanz von diesem Service zurück.
- *
- * @return die Logger-Instanz.
- */
- public getLogger() : Logger {
- return this.logger;
- }
- /**
- * Gibt das Log dieses Services zurück.
- *
- * @return das Log dieses Services
- */
- public getLog() : LogConsumerVector {
- return this.log;
- }
- isTranspiledInstanceOf(name : string): boolean {
- return ['de.nrw.schule.svws.core.Service'].includes(name);
- }
- }
- export function cast_de_nrw_schule_svws_core_Service<T_IN, T_OUT>(obj : unknown) : Service<T_IN, T_OUT> {
- return obj as Service<T_IN, T_OUT>;
- }
|