Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note
Funkcja musi zawsze być zarejestrowana po stronie serwera oraz może dodatkowo być zarejestrowana po stronie przeglądarki, gdy chcemy, aby była też tam wykorzystywana.

Rejestracja

...

na serwerze

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
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.function.FunctionRegistry
. Podczas rejestracji wyszukiwane są najpierw wszystkie klasy oznaczone adnotacją @
Javadoc
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.function.annotation.Functions
, następnie w tych klasach wyszukiwane są metody oznaczone adnotacją @
Javadoc
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.function.annotation.Function
 i zostają one zarejestrowane jako funkcje.

Poniższy przykład przedstawia definicję prostej funkcji zwracającej wartość wyższej liczby.

Code Block
languagejava
linenumberstrue
@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
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.function.Function
.

Rejestracja po stronie przeglądarki

Po stronie przeglądarki musimy sami zarejestrować funkcję. W tym celu należy wywołać metodę `register` z 

Jsdoc
propertyjsdoc.plusworkflow
classNamePW.core.fn.Functions

Code Block
languagejs
Functions.register("maxOf", function(a,b){
	return Math.max(a,b);
});

W tym przypadku zarejestrowaliśmy funkcję podaną jako drugi parametr o nazwie maxOf.

Warning

Należy pamiętać, że każda funkcja zarejestrowana po stronie przeglądarki musi mieć swój odpowiednik po stronie serwera.

 

Wykorzystanie funkcji po stronie serwera

...