...
Rejestracja funkcji dostępnych w systemie odbywa się podczas uruchomienia systemu oraz dynamicznie dla dynamicznych zasobów, takich jak wtyczki. Za rejestrację i przechowywanie funkcji odpowiada
Javadoc | ||||
---|---|---|---|---|
|
Javadoc | ||||
---|---|---|---|---|
|
Javadoc | ||||
---|---|---|---|---|
|
Rejestrowana funkcja musi składać się z:
Poniższy przykład przedstawia definicję prostej funkcji zwracającej wartość wyższej większej liczby.
Code Block | ||||
---|---|---|---|---|
| ||||
@Functions public class BasicFunctions { @Function public Integer maxOf( Integer a, Integer b ) { return Math.max( a, b ); } } |
Zarejestrowana funkcja posiada nazwę, zwracany typ oraz definicję parametrów ->
Javadoc | ||||
---|---|---|---|---|
|
Rejestracja po stronie przeglądarki
Używanie stworzonej funkcji po stronie przeglądarki (na formularzu zadania) wymaga od programisty dostarczenia jej implementacji w języku JavaScript. Taka implementacja wykorzystywana jest podczas dynamicznych obliczeń po stronie przeglądarki klienta.
W przypadku funkcji z implementacją JavaScript należy dodatkowo wskazać poprzez adnotację
Javadoc | ||||||
---|---|---|---|---|---|---|
|
classpath
. Zasób przechowywany w src/main/resources/functions/basic-functions.js
wskażemy tak:Code Block | ||||
---|---|---|---|---|
| ||||
@Functions
@FunctionsScript("/functions/basic-functions.js")
public class BasicFunctions
{
...
} |
Funkcje rejestrowane są z wykorzystaniem API
Jsdoc | ||||
---|---|---|---|---|
|
PW.Functions
):Code Block | ||
---|---|---|
| ||
// funkcja "max" która zwraca obiekt typu "float" i przyjmuje 2 parametry typu "float" PW.Functions.register("max", "float", ["float", "float"], function(value1, value2){ return Math.max(value1, value2); }); // funkcja "upper" która zwraca obiekt typu "string" i przyjmuje 1 parametry typu "string" PW.Functions.register("i[[erupper", "floatstring", ["floatstring"], function(text){ return text.toUpperCase(); }); |
...
Tak zarejestrowana funkcja zostanie wywołana tylko dla wywołań z argumentami które będą pasowały do zdefiniowanych typów (albo będą tego samego typu albo mogą zostać przekonwertowane).
...
. Możliwe typy opisane są w Wbudowane typy.
Rejestracja we wtyczce
Rejestracja funkcji we wtyczce jest taka sama jak zostało to opisane powyżej, jednak należy dodatkowo zaznaczyć, że wtyczka ta udostępnia funkcje do zarejestrowania. W tym celu należy w pliku suncode-plugin.xml dodać wpis:
...
Taki wpis spowoduje automatyczne wyszukanie wszystkich zdefiniowanych we wtyczce funkcji.
Tłumaczenia opisów funkcji i parametrów