Opis

Moduł Palio jest zbiorem podstawowych metod języka jPALIO wśród których można wyróżnić

Pobieranie informacji o bieżącym kontekście

Wykonywany kod jPALIO jest umieszczony w obiekcie, wywoływanym na określonej stronie instancji jPALIO. Do określenia tego kontekstu służą 3 bezparametrowe metody modułu Palio: $currentObjectCode() zwracająca kod bieżącego obiektu, $currentPageCode() zwracająca kod bieżącej strony oraz $currentInstance() zwracająca nazwę bieżącej instancji jPALIO.

Pobieranie wartości zmiennych

Wartości zmiennych w jPALIO są pobierane w następujący sposób

$nazwaZmiennejGlobalnej
$@nazwaZmiennejLokalnej
$nazwaTablicyGlobalnej[]
$@nazwaTablicyLokalnej[] lub $@nazwaTablicyLokalnej

Konstrukcje te posiadają jednak ograniczenia. Jeżeli nazwa zmiennej nie jest dana wprost, ale jest wynikiem wykonania pewnej operacji (np. sklejenia ciągów znaków) wówczas nie można zastosowąć powyższych konstrukcji. Wartość zmiennej w takim przypadku można pobrać stosując metody modułu Palio - w najprostszym przypadku

$getParam("nazwaZmiennejGlobalnej")
$getParam("@nazwaZmiennejLokalnej")
$getParamTable("nazwaTablicyGlobalnej")
$getParamTable("@nazwaTablicyLokalnej")

Metoda getParam zwraca wartość parametru o nazwie, która jest jej argumentem. Zwracana wartość jest typu Object. Isnieją również metody zwracające wartość pożądanego typu - takiego jaki ma wartość zmiennej.

Pobieranie wartości parametrów wywołania obiektu

Wartości kolejnych parametrów wywołania obiektu pobierane są w następujący sposób: $0, $1, $2, ... Jeżeli numer parametru do którego chcemy się odwołać nie jest dany wprost, ale jest wynikiem wykonania pewnej operacji wówczas można wykorzystać metody modułu Palio. Metoda getObjectParam zwraca wartość parametru, którego numer jest jej argumentem. Jeżeli wartość parametru jest tablicą należy użyć metody getObjectParamTable. Jeżeli liczba parametrów wywołania obiektu nie jest znana można ją określić za pomocą bezargumentowej metody getObjectParamsCount.

Konwersje typów danych

Moduł Palio defniuje zestaw metod do konwersji typów danych. Są to:

Dodatkowe parametry powyższych metod umożliwiają określanie sposobu konwersji jak format dat, format liczb zmiennoprzecinowych, zbiór kodowy ciągu znaków, itp.

Zdefniowano następujące metody konwersji

Konwersja z
String Date Long BigDecimal Boolean byte[] Object
Konwersja na
String


Date × ×
×
× ×
Long ×

× ×
BigDecimal ×
× × ×
Boolean × ×
×
× ×
×
byte[] × ×
×
× × ×
Object × × × ×
×
×
×

Sterowanie wykonywaniem kodu jPALIO

W module Palio zdefiniowane zostały metody sprawdzające czy zmienna ma wartość null lub też czy zmienna nie ma wartości null. Są to odpowiednio metody isNull i isNotNull, których argumentem jest sprawdzana wartość. Ze względu na częste stosowanie tych metod jako warunku instrukcji if w module Palio stworzone zostały skrócone wersje instrukcji if z takim warunkiem.

Instrukcja

$if($isNull(...), { ... })

Jest równoważna z

$ifNull(..., { ... })

Instrukcja

$if($isNotNull(...), { ... })

jest równoważna z

$ifNotNull(..., { ... })

Instrukcja

$if($not(...), { ... })

jest równoważna z

$ifNot(..., { ... })

W module Palio została również zdefiniowana bezparametrowa metoda exit która kończy wykonywanie strony w miejscu jej wywołania.

Wykonywanie kodu jPALIO

Istnieją sytuacje, kiedy kod jPALIO nie może być zapisany wprost lub nie powinien być wykonany w miejscu, gdzie został umieszczony. Wówczas należy użyć specjalnych metod modułu Palio:

Wykonanie kodu jPALIO w sposób synchronizowany oznacza, że dany fragment kodu nie może się wykonywać równolegle ze sobą. Oznacza to, że jeżeli dwóch użytkowników spróbuje równocześnie wykonać operację, która wymaga wykonania synchronizowanego fragmentu kodu, to operacja u jednego z użytkowników wykona się dopiero gdy u ta sama operacja u drugiego z nich się zakończy (u jednego z użytkowników nastąpi oczekiwanie na zakończenie operacji u drugiego z nich).

Wykonywanie koodu jPALIO w nowym wątku oznacza, że jego wykonanie będzie się odbywać równolegle z dalszym przetwarzaniem obiektu.

Aby wywołać obiekt, którego kod nie jest znany wprost, ale jest wynikiem wykonania pewnej operacji należy posłużyć się jedną z metod

 

$object("KOD_OBIEKTU")
$object("KOD_OBIEKTU", [PARAMETRY])