Klasy

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!")