...
Code Block | ||||
---|---|---|---|---|
| ||||
@Functions public class BasicFunctions { @Function public Integer maxOf( Integer a, Integer b ) { return Math.max( a, b ); } } |
Można określić, czy funkcja dotyczy tylko serwera (można ją użyć tylko na serwerze), czy tylko przeglądarki (można jej użyć tylko w javascript), czy obu miejsc. Odpowiada za to parametr *accessibility*, który można ustawić w adnotacji @
. Parametr jest typu @ Javadoc property javadoc.plusworkflow className com.suncode.pwfl.core.function.annotation.Function
i może przyjmować następujące wartości: Javadoc property javadoc.plusworkflow className com.suncode.pwfl.core.function.Function.FunctionAccessibility
- SERVER - funkcji nie można wykorzystać w javascript, czyli np. w akcjach (nie jest w ogóle pokazywana dla akcji w PWE w liście z funkcjami do wyboru), natomiast można ją użyć w pozostałych typach komponentów, czyli wykonywanych na serwerze.
- BROWSER - funkcję można wykorzystać w javascript, czyli np. w akcjach, natomiast można jej użyć w pozostałych typach komponentów, czyli wykonywanych na serwerze (nie jest w ogóle pokazywana dla tych komponentów w PWE w liście z funkcjami do wyboru).
- ALL - funkcja może być używana wszędzie.
Brak ustawionego parametru accessibility odpowiada wartości ALL.
Poniższy przykład pokazuje definicję funkcji, która jest dostępna tylko dla komponentów serwerowych. Funkcja zwraca imię i nazwisko użytkownika na podstawie jego loginu.
Code Block | ||||
---|---|---|---|---|
| ||||
@Functions
public class BasicFunctions
{
@Function( accessibility = FunctionAccessibility.SERVER )
public String userFullName( String userName )
{
User user = userService.getUser( userName );
if ( user == null )
{
return null;
}
return user.getFullName();
}
} |
Jeżeli robimy funkcję tylko dla przeglądarki, to na serwerze również musi być funkcja zdefiniowana, ale jej implementacja nie musi nic robić. Służyć ona ma tylko do pobrania nazwy i parametrów funkcji i wyśweitlania jej w PWE.
Rejestracja po stronie przeglądarki
...