Wstęp
Ta strona opisuje wszystkie dodatkowe komponenty, które używane są pomiędzy modułami.
Jeżeli własny moduł będzie wymagał np. spełnienia warunków, powinniśmy wykorzystać właśnie komponent condition opisany na tym stronie. Dzięki temu definicje modułów będą spójne i pisanie ich będzie bardziej naturalne.
Komponenty
Warunki - condition
Warunki mogą być wykorzystywane np. do sprawdzenia praw użytkownika do konkretnego modułu. Możemy zdefiniować wiele warunków, jednak logika ich spełnienia zależy od implementacji modułu (AND, OR etc.)
Atrybuty
Nazwa | Wymagany | Opis |
---|---|---|
class | ![]() | Pełna nazwa klasy tego warunku. Klasa musi implementować Condition. |
Do każdego warunku możemy przesłać dowolne parametry:
<param name="param1">asd</param> <param name="param2">asd</param>
Przykład
<condition class="xyz.HasRightCondition"> <param name="right">admin</param> </condition>
Java API
Możemy ułatwić sobie pisanie warunków i ich odczyt z XML'a.
// odczyt z elementu modułu conditions = ModuleHelper.getConditions(plugin, definition); // podczas pisania warunku możemy użyć klasy ConditionSupport: public class HelloCondition extends ConditionSupport{ @Autowired private SomeService someService; @Override public boolean isFulfilled(){ return someService.check(getParameter("someparam")); } }
Link - link
Element link umożliwia pobranie absolutnego adresu URL, wpisując adres relatywny do wtyczki lub do systemu.
Atrybuty
Nazwa | Wymagany | Opis |
---|---|---|
scoped | Domyślnie true. Jeżeli ma wartość true, to wpisany link będzie traktowany jako relatywny do wtyczki. Jeżeli ma wartość false, link będzie traktowany jako relatywny do context path. |
Przykład
<!-- Link relatywny do wtyczki: /PlusWorkflow/plugin/com.suncode.plugin-tutorial/hello --> <link>/hello</link> <link scoped="true">/hello</link> <!-- Link relatywny do systemu: /PlusWorkflow/hello --> <link scoped="false">/hello</link>
Java API
Możemy ułatwić sobie pisanie warunków i ich odczyt z XML'a.
// odczyt z elementu modułu - zwraca null jeżeli nie ma elementu link w module conditions = ScopedWebLink.parse(definition, plugin);