W obiektach typu Groovy można umieszczać definicje klas.
Aby stworzyć klasę palio.sample.SimpleClass należy stworzyć obiekt jPALIO typu Groovy o kodzie palio.sample.SimpleClass. Zalecane jest umieszczenie tego obiektu w katalogu palio->sample. W treści definicji klasy należy pamiętać o zadeklarowaniu pakietu klasy. W naszym przypadku jest to pakiet palio.sample. Nazwa pakietu powinna odpowiadać hierarchii katalogów w której umieszczony został obiekt z definicją klasy.
Przykładowa klasa:
package palio.sample;
public class SimpleClass {
public static String someStaticMethod(String someArgument) {
return someArgument
}
public String someMethod(String someArgument) {
return someArgument
}
}
W przypadku gdy w innym obiekcie typu Groovy chcemy skorzystać z funkcjonalności zaimplementowanej w danej klasie należy zaimportować cały pakiet w której jest dana klasa lub konkretną klasę.
import palio.sample.*
lub
import palio.sample.SimpleClass
Wyjątkiem są obiekty Groovy umieszczone w tym samym katalogu (pakiecie). Dla tych obiektów import nie jest wymagany.
Poniżej przedstawiono przykład użycia przykładowej klasy w skrypcie Groovy (umieszczonym w tym samym pakiecie)
package palio.samples;
println SimpleClass.someStaticMethod("Static method...")
println new SimpleClass().someMethod("Method...")
Przykład użycia przykładowej klasy w innej klasie (umieszczonej w innym pakiecie)
package palio.samples.somepackage;
import palio.samples.*;
public class SecondSimpleClass {
SimpleClass simpleClass
public SecondSimpleClass() {
this.simpleClass = new SimpleClass()
}
public static String someStaticMethod(String someArgument) {
return SimpleClass.someStaticMethod(someArgument)
}
public String someMethod(String someArgument) {
return getSimpleClass().someMethod(someArgument)
}
}
Ciekawą funkcjonalnością, dającą spore możliwości, jest wywoływanie obiektu jPALIO zawierającego definicję klasy. Aby było to możliwe, klasa ta musi mieć zdefiniowaną metodę run:
public static Object run(Object[] args)
Przykład klasy z metodą run:
package palio.samples;
public class SimpleClassWithRunMethod {
private static String somePrivateStaticMethod(String someArgument) {
return someArgument
}
public static Object run(Object[] args) {
return SimpleClassWithRunMethod.somePrivateStaticMethod(args[0])
}
}
oraz przykładowe wywołanie obiektu zawierającego daną klasę:
$*palio.samples.SimpleClassWithRunMethod("Hello jPALIO!")