Plugins¶
Introduction¶
Il est possible d'étendre les fonctionnalités du moteur au moyen de plugins. Un plugin est une classe java qui fournit des librairies et des méthodes utilisables depuis un script ewts.
Un plugin peut alors être chargé dynamiquement au moyen de la méthode
$plugin.load
.
Création d'un plugin¶
Pour qu'une classe soit un plugin utilisable dans Ewt, elle doit
impérativement être annotée avec l'annotation @EwtScriptLibrary
. Les
méthodes mises à disposition par le plugin doivent quant à elle respecter
les quatre conditions suivantes:
- Elles doivent porter l'annotation
@EwtScriptMethod
- Elles doivent être statiques
- Le premier paramètre doit être du type
EwtScriptProcessor
- Elles doivent retourner un objet du type
EwtTypeObject
Le code suivant donne un exemple basique de plugin valide:
package plugin;
import ch.epilogic.ewt.scripts.EwtScriptLibrary;
import ch.epilogic.ewt.scripts.EwtScriptMethod;
import ch.epilogic.ewt.scripts.EwtScriptProcessor;
import ch.epilogic.ewt.types.EwtTypeObject;
import ch.epilogic.ewt.types.EwtTypeString;
@EwtScriptLibrary(name = "test")
public class TestPlugin {
@EwtScriptMethod(name = "hello")
public static EwtTypeObject execute(EwtScriptProcessor processor, String name) {
return new EwtTypeString("Hello " + name);
}
}
La classe TestPlugin
ci-dessus est déclarée comme librairie test
via
l'annotation @EwtScriptLibrary
.
Elle fournit une méthode qui est déclarée comme méthode hello
via
l'annotation EwtScriptMethod
.
En plus du paramètre EwtScriptProcessor
obligatoire, la méthode attend un
second paramètre du type String
. Elle retourne en réponse une chaîne de
caractère composée du préfixe "Hello " suivi du paramètre reçu.
Utilisation d'un plugin¶
À supposer que le plugin est compilé dans une archive monPlugin.jar
, il
peut être utilisé dans un script ewts de la manière suivante:
1 2 3 |
|
L'exemple ci-dessus aura pour effet d'inscrire "Hello World !" dans le log.