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 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(obj : unknown) : Service { return obj as Service; }