Versions Compared

Key

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

Jeżeli w systemie jest zdefiniowany hook, to aby się do niego "wpiąć" należy go zaimplementować. W tym celu należy stworzyć klasę, która posiada adnotację @Hook oraz rozszerza abstrakcyjną klasę stworzoną dla danej sekcji hook'ów.

Tip

Należy unikać implementowania interfejsu dla sekcji hook'ów, a w zamian tego rozszerzać klasę abstrakcyjną dla tej sekcji. Pozwoli to uniknąć w przyszłości błędów kompilacji w momencie, gdy do interfejsu zostanie dodany nowy hook. Dodatkowo dzięki temu nie ma przymusu implementacji wszystkich hook'ów należących do danej sekcji.

Code Block
languagejava
titlePrzykład
@Hook
public class UserDelegationHookImpl
    extends DelegationHookAdapter
{
	@Override
	public boolean confirmCreateDelegation( String userName, UserDelegation delegation )
	{
		//implementacja metody
	}

    @Override
    public int getOrder()
    {
        return 0;
    }
}

W powyższym przykładzie został zaimplementowany tylko hook confirmCreateDelegation. Dodatkowo została ustawiona kolejność wykonywania hook'a poprzez nadpisanie metody getOrder(). Jeżeli zaimplementowany byłby ten sam hook z inną logiką i order miałby ustawiony na wyższą wartość, np.: 1, to wtedy zawsze ten hook będzie wykonywany po hooku z orderem 0.

Code Block
languagejava
titlePrzykład: Hook z order 1
@Hook
public class UserDelegationHookSecond
    extends DelegationHookAdapter
{
	@Override
	public boolean confirmCreateDelegation( String userName, UserDelegation delegation )
	{
		//implementacja metody
	}

    @Override
    public int getOrder()
    {
        return 1;
    }
}