Obiekty

Obiekty zawierają w sobie kod sterowania aplikacyjnego. Raz stworzony obiekt może być używany wielokrotnie. Wywołanie obiektu z wnętrza innego obiektu lub niego samego (rekurencyjnie) ma postać

$*object_identifier

lub

$*object_code

w przypadku obiektów bezparametrowych oraz

$*object_identifier(param1, param2, ... )

lub

$*object_code(param1, param2, ... )

w przypadku obiektów wywoływanych z parametrami, przy czym identyfikator_obiektu jest unikalną liczbą nadawaną każdemu obiektowi automatycznie w chwili jego utworzenia, a kod_obiektu unikalnym ciągiem znaków nadawanym każdemu obiektowi przez użytkownika. Pierwszym znakiem kodu obiektu musi być litera lub znak podkreślenia, kolejne znaki mogą być dodatkowo cyframi lub kropką, po kropce musi znajdować się litera lub znak podkreślenia. Ta sama zasada dotyczy tworzenia kodów stron, mediów i elementów hierarchicznej struktury typów.

Odwołanie w obiekcie do wartości dowolnego parametru jego wywołania ma postać

$param_number

lub (w przypadku parametrów stanowiących tablice wartości)

$param_number[]

przy czym parametry są numerowane od 0, czyli $0 oznacza wartość pierwszego parametru ($0[] jeśli pierwszy parametr jest tablicą), $1 – wartość drugiego parametru ($1[] jeśli drugi parametr jest tablicą) itd. Odwołanie do parametru, który nie został przekazany do obiektu jest równoważne z odwołaniem do wartości null.

Parametry wywołania obiektu istnieją tylko w czasie wykonywania tego obiektu i nie są widoczne poza tym obiektem.

Zmienne ustawione przed wywołaniem obiektu są widoczne wewnątrz tego obiektu i mogą być przezeń modyfikowane.

Zmienne ustawione wewnątrz obiektu pozostają widoczne w kodzie aplikacyjnym także po wywołaniu tego obiektu.


Wraz z wersją 5.0.0 jPALIO wprowadzona została instrukcja zwracania wartości przez obiekt. Instrukcja return powoduje natychmiastowe wyjście z kodu / obiektu ze zwróceniem wartości. Wszystko co znajduje się po instrukcji return już się nie wykona

$return("WARTOŚĆ")

 

Zwróconą wartość można pobrać

$@=(RESULT, (String)$*ID_OR_OBJECT_CODE)

Można także wykonać wyjście z obiektu bez zwracania wartości

$return()

Jeżeli instrukcja wyjścia zostanie wykonana wewnątrz pętli, iteracja jest przerywana i następuje wyjście z obiektu. Zachowanie takie dotyczy większości zagnieżdżonego kodu wewnątrz obiektu (pętle, instrukcje warunkowe, itd.). Wyjątkiem są wszystkie metody typu $palio.execute...(). Użycie instrukcji wyjścia w kodzie wewnątrz tej metody, przerywa wykonanie tylko tego kodu (nie całego obiektu). W związku z tym wszystkie te metody zwracają teraz wartość (zazwyczaj null, jeżeli wykonywanie kodu nie zostało przerwane). Metoda $palio.executeToBuffer zwraca wyjście (ewentualna zwrócona wewnątrz kodu wartość jest tracona). Metoda wywołująca kod w innym wątku nie zwraca wartości (wyjście jest logowane, ewentualna zwrócona wartość jest tracona).

W wersji 5.0.0 jPALIO została także wprowadzona instrukcja importowania typów i pakietów JAVA. Importowanie konkretnego typu, aby można go było potem szybciej używać

$#import(palio.pelements.PObject)
Importowanie całego pakietu (w pierwszej kolejności przy mapowaniu sprawdzane są dokładne wskazania, pakiety w drugiej kolejności)
$#import(palio.pelements.*)