Skrypty

Obiekty tego typu pełnią rolę funkcji. Przyjmują argumenty, wykonują jakąś operacje, a następnie zwracają wartość będącą zazwyczaj wynikiem wykonanej operacji. Możliwe jest wywołanie obiektu bez podawania argumentów. Obiekt nie musi zwracać żadnej wartości.

Każdy obiekt tego typu posiada predefiniowaną tablicę o nazwie args, w której przechowywane są przekazane do obiektu argumenty. Odwołanie do pierwszego argumentu wygląda w sposób następujący:

args[0]

Obiekty typy Groovy, tak jak wszystkie inne obiekty jPALIO, można przypisać do strony jPALIO. Takie obiektu posiadają predefiniowaną mapę parametrów globalnych jPALIO (w tym także parametrów wysłanych z formularza) o nazwie params.

Poniżej przedstawiono przykład obiektu realizującego proste operacje arytmetyczne. Jako pierwszy argument przyjmuje operator jaki ma zostać użyty, a jako dwa kolejne - wartości jakie mają zostać użyte przy danej operacji. Obiekt zwraca wynik działania operatora.

def operator = args[0]
def firstOperand = args[1]
def secondOperand = args[2]

switch (operator) {
case "+":
return firstOperand + secondOperand
case "-":
return firstOperand - secondOperand
case "*":
return firstOperand * secondOperand
case "/":
return firstOperand / secondOperand
default:
throw new UnsupportedOperationException(operator)
}

 

Przykładowe wywołanie tego obiektu w języku jPALIO

$=(@firstOperand, 40)
$=(@secondOperand, 50)

$=(@operator, null)
$for(@operator, ["+", "-", "/", "*"], {
$@firstOperand $@operator $@secondOperand = $*samples.doSomeArithmeticOperation($@operator, $@firstOperand, $@secondOperand)
})

 

To samo w języku Groovy

import palio.*

def firstOperand = 40
def secondOperand = 50

for(operator in ["+", "-", "/", "*"]) {
println "$firstOperand $operator $secondOperand = " +
Groovy.object("samples.doSomeArithmeticOperation", operator, firstOperand, secondOperand)
}