Package at.letto.plugins.restclient
Class BasePluginConnectionService
java.lang.Object
at.letto.plugins.restclient.BasePluginConnectionService
- All Implemented Interfaces:
PluginConnectionService
- Direct Known Subclasses:
PluginConnectionServiceIntern
Implementierung eines Basis-Services für die Plugins
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ConcurrentHashMap
<String, PluginConfigurationConnection> protected HashMap
<String, PluginGeneralInfo> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static PluginConfigurationConnection
addConnection
(String typ, String name, String config, String configurationID, PluginService pluginService, long timeout) configurationInfo
(String typ, String name, String config, String configurationID, long timeout) Liefert die Informationen welche notwendig sind um einen Konfigurationsdialog zu starten
Ist die configurationID gesetzt wird eine Konfiguration gestartet und damit auch die restlichen Endpoints für die Konfiguration aktiviert.createPluginService
(String typ, String name, String params) Erzeugt aus dem Plugin-Typ und den Parametern ein PluginService Objekt
Sollte nur intern im SpringBoot-Service verwendet werden!generateDatasets
(String typ, String name, String config) Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein solltenLiefert einen Angabestring für die MoodleText AngabegetConfiguration
(String typ, String configurationID) Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindetgetConfigurationConnection
(String typ, String configurationID) private static PluginConfigurationConnection
getConnection
(String configurationID) Berechnet den Fragetext für das Fragefeld des Webservers für die angegebenen Parameter für die Verwendung in einem PIT TagLiefert ein Base64 codiertes Bild mit den angegebenen ParameterngetImageTemplates
(String typ, String name, String config) Liefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : HilfetextgetMaxima
(String typ, String name, String config, String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des PluginsLiefert eine Liste aller Variablen welche als Dataset benötigt werden.loadPluginDto
(String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - BearbeitungmodifyAngabe
(String typ, String name, String config, String text, PluginQuestionDto q) verändert einen Angabetext, der in der Angabe in PI Tags eingeschlossen wurde
Die Funktion wird vor dem Darstellen der Frage ausgeführt.modifyAngabeTextkomplett
(String typ, String name, String config, String text, PluginQuestionDto q) verändert den kompletten Angabetext der Frage.parserPlugin
(String typ, String name, String config, VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p) Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wirdparserPluginEinheit
(String typ, String name, String config, String... p) Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p habenprotected void
registerPlugin
(String typ, String classname) Registriert ein Plugin im Services,private static void
renderLatex
(String typ, String name, String config, PluginDto pluginDto, String answer, String mode) Rendert ein Plugins für den Fragedruck als Latex-SourcoderenderPluginResult
(String typ, String name, String config, boolean tex, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Rendert das Plugin inklusive der Schülereingabe und korrekter Lösung
Es wird dabei entweder direkt ein HTML-Code oder LaTeX-Code erzeugtscore
(String typ, String name, String config, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Prüft die Eingabe eines SchülerssetConfigurationData
(String typ, String configurationID, String configuration, PluginQuestionDto questionDto) Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-KonfigurationupdatePluginstringJavascript
(String typ, String name, String config, String pluginDef, String jsResult) Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive Karte
-
Field Details
-
plugins
-
configurations
-
-
Constructor Details
-
BasePluginConnectionService
public BasePluginConnectionService()
-
-
Method Details
-
registerPlugin
Registriert ein Plugin im Services,- Parameters:
typ
- Name des Pluginsclassname
- Klassenpfad des Plugins
-
getPluginList
- Specified by:
getPluginList
in interfacePluginConnectionService
- Returns:
- liefert eine Liste aller Plugins (Pluginnamen) , welche mit diesem Service verwaltet werden
-
getPluginGeneralInfoList
- Specified by:
getPluginGeneralInfoList
in interfacePluginConnectionService
- Returns:
- liefert eine Liste aller globalen Informationen über alle Plugins des verwalteten Services
-
getPluginGeneralInfo
- Specified by:
getPluginGeneralInfo
in interfacePluginConnectionService
- Parameters:
typ
- Plugin Typ- Returns:
- liefert die allgemeinen Konfigurationsinformationen zu einem Plugin
-
createPluginService
Erzeugt aus dem Plugin-Typ und den Parametern ein PluginService Objekt
Sollte nur intern im SpringBoot-Service verwendet werden!
Bis der Plugin-Config-Dialog umgestellt ist wird die Funktion auch von JSF für den Konfigurationsdialog verwendet, sollte später aber auf private gesetzt werden!!- Parameters:
typ
- Typ des Pluginsname
- Namen des Plugins in der Frageparams
- Parameterstring des Plugins für die Konfiguration- Returns:
- erzeugtes Plugin
-
getHTML
Berechnet den Fragetext für das Fragefeld des Webservers für die angegebenen Parameter für die Verwendung in einem PIT Tag- Specified by:
getHTML
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Antworterzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- HTML Text
-
getAngabe
Liefert einen Angabestring für die MoodleText Angabe- Specified by:
getAngabe
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Einstellungen- Returns:
- String für das MoodleText-Feld
-
generateDatasets
Liefert alle Datensätze, welche für das Plugin in der Frage vorhanden sein sollten- Specified by:
generateDatasets
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liste der Datensatzdefinitionen welche vom Plugin in der Frage angefordert werden
-
getMaxima
public String getMaxima(String typ, String name, String config, String params, PluginQuestionDto q, PluginMaximaCalcModeDto pluginMaximaCalcMode) Liefert einen Maxima-Berechnungsstring für die Berechnung des Plugins- Specified by:
getMaxima
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameterq
- Frage wo das Plugin eingebettet istpluginMaximaCalcMode
- Art der Berechnung- Returns:
- Maxima Berechnungs-String
-
getImage
public ImageBase64Dto getImage(String typ, String name, String config, String params, PluginQuestionDto q) Liefert ein Base64 codiertes Bild mit den angegebenen Parametern- Specified by:
getImage
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Parameter für die Bilderzeugungq
- Frage wo das Plugin eingebettet ist- Returns:
- Base64 kodiertes Bild in einem MoodleFile
-
getImageTemplates
Liefert eine Liste aller möglichen Varianten von Bildern Element 0 : beschreibender Text Element 1 : PIG Tag Element 2 : Hilfetext- Specified by:
getImageTemplates
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liefert eine Liste aller möglichen Varianten von Bildern
-
parserPlugin
public CalcErgebnisDto parserPlugin(String typ, String name, String config, VarHashDto vars, CalcParamsDto cp, CalcErgebnisDto... p) Wird verwendet wenn im Lösungsfeld die Funktion plugin("pluginname",p1,p2,p3) verwendet wird- Specified by:
parserPlugin
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsvars
- Alle Variablen der Fragecp
- Berechnungsparameterp
- Liste von CalcErgebnis-Werten, welche an das Plugin von der Question aus übergeben werden können- Returns:
- Ergebnis der Funktion
-
parserPluginEinheit
Bestimmt die Recheneinheit, welche bei der Methode parserPlugin als Ergebnis herauskomment wenn die Parameter die Einheiten wie in der Liste p haben- Specified by:
parserPluginEinheit
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsp
- Einheiten der Parameter als Recheneinheiten- Returns:
- Recheneinheit des Ergebnisses
-
score
public PluginScoreInfoDto score(String typ, String name, String config, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Prüft die Eingabe eines Schülers- Specified by:
score
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDto
- PluginDto welches für die Java-Script aktive Eingabe aufbereitet wurdeantwort
- Antwort die der Schüler eingegeben hattoleranz
- Toleranz für die LösungvarsQuestion
- Referenz auf VarHash, wird dynamisch nachgeladenanswerDto
- Antwort des Schülersgrade
- Maximale Punktanzahl für die richtige Antwort- Returns:
- Bewertung
-
getVars
Description copied from interface:PluginConnectionService
Liefert eine Liste aller Variablen welche als Dataset benötigt werden.- Specified by:
getVars
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Plugins- Returns:
- Liste aller Variablen des Plugins
-
modifyAngabe
public String modifyAngabe(String typ, String name, String config, String text, PluginQuestionDto q) verändert einen Angabetext, der in der Angabe in PI Tags eingeschlossen wurde
Die Funktion wird vor dem Darstellen der Frage ausgeführt.- Specified by:
modifyAngabe
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstext
- Text der innerhalb der PI Tags gestanden istq
- Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!- Returns:
- veränderter Text
-
modifyAngabeTextkomplett
public String modifyAngabeTextkomplett(String typ, String name, String config, String text, PluginQuestionDto q) verändert den kompletten Angabetext der Frage. Dieser muss als Parameter übergeben werden!
Die Funktion wird vor dem Darstellen der Frage ausgeführt.- Specified by:
modifyAngabeTextkomplett
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstext
- Angabetext der Frageq
- Frage innerhalb der, der Text sich befindet, die Frage sollte vom Plugin nicht verändert werden!!- Returns:
- veränderter AngabeText
-
updatePluginstringJavascript
public String updatePluginstringJavascript(String typ, String name, String config, String pluginDef, String jsResult) Passt die Plugindefinition an die Eingabe aus dem Javascipt-Result an. zB: Interaktive Karte- Specified by:
updatePluginstringJavascript
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDef
- akt. Plugin-DefinitionjsResult
- Rückgabe von Javascript- Returns:
- aktualiesierte Plugindefinition
-
loadPluginDto
public PluginDto loadPluginDto(String typ, String name, String config, String params, PluginQuestionDto q, int nr) Rendern des Plugin-Images, Aufbau eines DTOs zur späteren Javascript - Bearbeitung- Specified by:
loadPluginDto
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginsparams
- Plugin-Parameterq
- Question, in die das Plugin eingebettet istnr
- Laufende Nummer für alle PIG-Tags und Question-Plugins- Returns:
- PluginDto
-
renderLatex
public PluginRenderDto renderLatex(String typ, String name, String config, PluginDto pluginDto, String answer, String mode) Rendert ein Plugins für den Fragedruck als Latex-Sourcode- Specified by:
renderLatex
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginspluginDto
- Das PluginDto welches am Webserver an das Java-Script des Plugins zum Rendern gesandt wirdanswer
- Inhalt des Antwortfeldes welches der Schüler eingegeben hatmode
- Druckmode- Returns:
- Latexsourcode und zugehörige Bilder in einer Hashmap
-
renderPluginResult
public PluginRenderDto renderPluginResult(String typ, String name, String config, boolean tex, PluginDto pluginDto, String antwort, ToleranzDto toleranz, VarHashDto varsQuestion, PluginAnswerDto answerDto, double grade) Rendert das Plugin inklusive der Schülereingabe und korrekter Lösung
Es wird dabei entweder direkt ein HTML-Code oder LaTeX-Code erzeugt- Specified by:
renderPluginResult
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des Pluginstex
- true für LaTeX-Code, false für html-CodepluginDto
- PluginDto welches für die Java-Script aktive Eingabe aufbereitet wurdeantwort
- Antwort die der Schüler eingegeben hattoleranz
- Toleranz für die LösungvarsQuestion
- Referenz auf VarHash, wird dynamisch nachgeladenanswerDto
- Antwort des Schülersgrade
- Maximale Punktanzahl für die richtige Antwort- Returns:
- HTML-Code oder LaTeX-Code mit Bildern
-
configurationInfo
public PluginConfigurationInfoDto configurationInfo(String typ, String name, String config, String configurationID, long timeout) Liefert die Informationen welche notwendig sind um einen Konfigurationsdialog zu starten
Ist die configurationID gesetzt wird eine Konfiguration gestartet und damit auch die restlichen Endpoints für die Konfiguration aktiviert.- Specified by:
configurationInfo
in interfacePluginConnectionService
- Parameters:
typ
- Typ des Pluginsname
- Name des Plugins in der Frageconfig
- Konfigurationsstring des PluginsconfigurationID
- eindeutige ID welche für die Verbindung zwischen Edit-Service, Browser und Plugin-Konfiguration verwendet wirdtimeout
- maximale Gültigkeit der Konfigurations-Verbindung in Sekunden ohne Verbindungsanfragen, Notwendig um bei Verbindungsabbruch die Daten am Plugin-Service auch wieder zu löschen- Returns:
- alle notwendigen Konfig
-
setConfigurationData
public PluginConfigDto setConfigurationData(String typ, String configurationID, String configuration, PluginQuestionDto questionDto) Sendet alle notwendigen (im ConfigurationInfo) angeforderten Daten im Mode CONFIGMODE_URL an die Plugin-Konfiguration- Specified by:
setConfigurationData
in interfacePluginConnectionService
- Parameters:
typ
- Typ des PluginsconfigurationID
- zu verwendende Konfigurations-ID (muss am Plugin-Service zuvor angelegt worden sein mit configurationInfo)configuration
- aktueller Konfigurations-String des PluginsquestionDto
- Question-DTO mit Varhashes- Returns:
- Liefert die Daten welche an JS weitergeleitet werden.
-
getConfiguration
Liefert die aktuelle Konfiguration eines Plugins welches sich gerade in einem CONFIGMODE_URL Konfigurationsdialog befindet- Specified by:
getConfiguration
in interfacePluginConnectionService
- Parameters:
typ
- Typ des PluginsconfigurationID
- zu verwendende Konfigurations-ID- Returns:
- Konfigurationsparameter oder "@ERROR: Meldung" wenn etwas nicht funktioniert hat
-
getConfigurationConnection
-
addConnection
private static PluginConfigurationConnection addConnection(String typ, String name, String config, String configurationID, PluginService pluginService, long timeout) -
removeOutdatedConnections
private static void removeOutdatedConnections() -
getConnection
-