Startseite
Startseite

Startseite / Vorlagenentwicklung / Vorlagensyntax / Ausdrücke / Methodenaufrufe

Methodenaufrufe

Allgemein werden die einer Klasse von Objekten zugeordneten Algorithmen als Methoden bezeichnet. Häufig wird der Begriff „Methode“ synonym zu „Funktion“ gebraucht. In der Vorlagensyntax von FirstSpirit stehen die beiden Begriffe jedoch für unterschiedliche Aktionen.

  • Methoden werden direkt auf einem Kontext-Objekt aufgerufen. Dazu zählen beispielsweise der Zugriff auf Attribute eines komplexen Datentyps (picture.width) oder auch bestimmte Stringoperationen (element.toString()).
  • Funktionen werden dagegen nicht auf einem Objekt aufgerufen und nur einmal, bei der Generierung einer Seite ausgeführt (sogenannte Header-Funktionen).

Syntax Methoden-Aufruf

AUSDRUCK  := VARIABLE | PUNKT_AUSDRUCK '.' [ BEZEICHNER  | METHODENAUFRUF ]
METHODENAUFRUF  := BEZEICHNER '(' PARAMETER_LISTE ')'
PARAMETER_LISTE := AUSDRUCK [',' AUSDRUCK]*

In FirstSpirit können Methodenaufrufe sowohl in Java- als auch in Bean-Syntax-Schreibweise angegeben werden.

Bei der Bean-Syntax-Schreibweise kann get und () des Methodennamens weggelassen werden. Der erste Buchstabe nach dem get im Methodennamen wird zusätzlich kleingeschrieben, z. B. getLanguage() => language, getMultiPageParams() => multiPageParams usw..

Für den Methodenaufruf $CMS_VALUE(#global.getEncoding())$ kann beispielsweise auch $CMS_VALUE(#global.encoding)$ verwendet werden.

Wichtig Die Bean-Syntax-Schreibweise sollte nicht bei den Methodenaufrufen des Systemobjektes #row verwendet werden, da es zu Überschneidungen mit den Spaltennamen der Tabelle kommen kann.

Methodenaufrufe ohne Rückgabewert

Methoden können einen Wert als Ergebnis einer Berechnung zurückliefern, oder nur Code ausführen, ohne einen Rückgabewert zurückzuliefern.

Liefert eine Methode keinen Wert zurück, wird anstelle des Rückgabeparameters der unspezifische Datentyp void angegeben.

Beispiel Methode:

void doSomething()

Methodenaufrufe mit Rückgabewert

Liefert eine Methode das Ergebnis einer Berechnung als Wert zurück, wird der Datentyp des Rückgabeparameters vor dem Methodenbezeichner angegeben.

Beispiel Methode:

 java.lang.String toString()

  • Rückgabeparameter vom Datentyp java.lang.String.
  • Methodenbezeicher: toString
  • Parameterliste: „leer“

Beispiel Methodenaufruf:

$CMS_SET(myVar, 42.toString())$
Rückgabewert: $CMS_VALUE (myVar)$
Klasse: $CMS_VALUE (myVar.class())$

Der Methodenaufruf toString wandelt den Zahlenwert „42“ in eine Zeichenkette und liefert als Ergebnis die Zeichenkette '"42"' vom Datentyp String zurück. Der Rückgabewert wird in der Variablen „myVar“ gespeichert:

Ausgabe:

Rückgabewert: 42
Klasse: java.lang.String

Methodenaufrufe ohne Parameterübergabe

Methoden können Parameter übergeben werden, auf die innerhalb der Methodenausführung zugegriffen werden kann. Benötigt eine Methode keine Übergabeparameter, werden leere Klammern () angefügt.

Beispiel Methode:

java.lang.Class getClass()

  • Rückgabeparameter vom Datentyp java.lang.Class.
  • Methodenbezeicher: getClass
  • Parameterliste: „leer“

Beispiel Methodenaufruf:

$CMS_SET(myVar, 42)$
Rückgabewert: $CMS_VALUE (myVar.getClass())$

Der Methodenaufruf getClass liefert als Ergebnis den Datentyp der Variable „myVar“ zurück.

Ausgabe:

Rückgabewert: java.math.BigInteger

Methodenaufrufe mit Parameterübergabe

Bei Methodenaufrufen mit Parameterübergabe werden innerhalb der Klammern ( ) Parameter übergeben. Mehrere Parameter werden als kommaseparierte Liste übergeben.

Beispiel Methode:

java.lang.String replaceAll (java.lang String, java.lang.String)

  • Rückgabeparameter vom Datentyp java.lang.String.
  • Methodenbezeicher: replaceAll
  • Parameterliste: java.lang String, java.lang.String

Beispiel Methodenaufruf:

$CMS_SET(myText, "Das ist eine kleine Zeichenkette.")$
Rückgabewert: $CMS_VALUE (myText.replaceAll("kleine", "tolle"))$

Der Methodenaufruf replaceAll ersetzt eine Teilzeichenkette (Parameter 1) durch eine zweite übergebene Zeichenkette (Parameter 2) und liefert als Ergebnis die ursprüngliche Zeichenkette mit den Ersetzungen zurück.

Ausgabe:

Rückgabewert: Das ist eine tolle Zeichenkette.

Methode APIdoc

Über die Methode apiDoc können alle verfügbaren Methoden im Kontext vorhandener Objekte ausgegeben werden. Über die Rückgabewerte der Methode kann also ermittelt werden, welche Attribute oder Methoden auf einem Objekt zur Verfügung stehen.

Beispiel Methodenaufruf:

apiDoc(global)

Parameter: Dabei handelt es sich entweder um:

  • ein Objekt (in diesem Fall „global“), das im Kontext verfügbar sein muss (z. B. global, global.page, ...), oder um
  • eine Klasse, die über .class ermittelt wurde.

Rückgabewert: Die Methode liefert als Rückgabewert eine Liste von Objekten vom Typ ApiMethodWrapper. Um zu ermitteln, welche Methoden ApiMethodWrapper zur Verfügung stellt, kann folgender Aufruf benutzt werden:

$CMS_FOR(m, apiDoc(class("de.espirit.firstspirit.parser.impl.ApiDocMethod$ApiMethodWrapper")))$
$CMS_VALUE(m)$
$CMS_END_FOR$

Ausgabe: alle dokumentierten, verfügbaren Methoden der Klasse ApiMethodWrapper:

java.lang.String getComment()
boolean getDeprecated()
java.lang.String getMethodName()
java.lang.Class getReturnType()
java.lang.Class[] getSignature()
java.lang.String getSince()
java.util.List getVersions()

© 2005 - 2015 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 2011-12-06