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)
}