home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Scripting (Groovy)

Eine Übersicht zu Groovy ist hier zu finden, Groovy Ausarbeitung von Rene Balser und Christian Sitter.

Vorteile von Scripting (Groovy)

  • dynamische Typisierung, d.h. Variablen erhalten ihren Typ durch die zuweisen eines Wertes
  • sehr eng an Java gebunden

    • ähnliche Syntax, wurde vereinfacht
    • Java Klassen können weiterhin benutzt werden

  • Unterschiede zu Java

    • es müssen keine Getter und Setter für Attribute geschrieben werden
    • java.io, java.util sind auomatisch importiert
    • der Umhang mit Dateien, XML und SQL wurde vereinfacht
    • Erweiterung der Collections
    • Operatoren sind als Methode implementiert und können überschrieben werden
    • Closures

Aufruf von Java Klassen in Groovy

Der Aufruf unterscheidet sich nicht zu der Java Syntax, die Java Klasse java.io.File wird mit file = new File() instanziert.

Aufruf eines Groovy Scripts in Java

Um ein Groovy Script aufzurufen, benötigen wir die lasse GroovyShell.

GroovyShell shell = new GroovyShell();

Auf der GroovyShell rufen wir die parse() Methode auf, die als Parameter unser Groovy Script erhält.

Script script = shell.parse(new File("src/package/MyScript.groovy"));

Um Variablen Werte zuzuweisen, rufen wir die binding() Methode auf dem Script auf.

        script.getBinding().setVariable("zahl", 2);
        script.getBinding().setVariable("value", "mustermann");

Um das Script auszuführen, dient die run() Methode.

script.run();

Strings

In Groovy gibt es zwei Artn von Strings, die Strings die wir bereits aus Java kennen nd die Groovy Strings.

Java Strings stehen in einfachen Anfühungszeichen, Bsp.

def value1 = 'Groovy rocks'

print value1

Die Groovy Strings stehen in doppelten Anführungszeichen, sie haben die Besonderheit, dass sie Variablen Ersetzung können.

def groovy = 'Groovy'

def value2 = "$groovy rocks"

print value2

Beide print Ausgaben schreiben den gleichen Text auf die Konsole.

Methoden

Auf Methoden kann zugegriffen werden, auch wenn sie erst später im Script definiert sind. Das hat den Grund, dass Groovy Script in Bytecode umgewandelt sind und sich dann nicht mehr von Java Klassen unterscheiden.

Collections und Maps

Umgang mit Collections

def myCollection = [1, 5, 78, 912]

print myCollection[0]  //Ausgabe: 1

Umgang mit Maps

def myMap = ['zwei':1, 'neun': 10, 'drei':7]

pint myMap['zwei']  //Ausgabe: 1

Es gibt aber noch ein weiteres Schmankerl, ranges.

Ranges

def myIntRange = [3..71] //enthält die Zahlen von 3 bis 71

def myLetterRange = ['c'..'m']  // enthält die Buchstabe c bis m

Groovy Klassen

Um in Groovy eine Klasse zu schreiben reicht es

class myClass {   }

zu schreiben. Konstruktoren, Getter und Setter Methoden für die Attribute können weggelassen werden.