SPL-Syntax
Eine SPL-Vorlage ist in der Programmiersprache des zu generierenden Programmcodes erstellt. Die Vorlage enthält Codefragmente von SPL-Anweisungen, um MobileTogether-Daten in den generierten Programmcode zu integrieren. SPL-Anweisungen sind werden eckige Klammern eingeschlossen. Hier sehen Sie z.B. eine Vorlage zur Generierung einer (in XML geschriebenen) XML-Datei, in der die SPL-Anweisungen gelb markiert sind.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="[=$Options.androidPackageName]"
android:versionCode="[=$Options.appVersion]"
android:versionName="[=$Options.appVersion]">
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="22"/>
</manifest>
Mehrere Anweisungen
In ein Klammerpaar können mehrere Anweisungen eingeschlossen werden. Zusätzliche Anweisungen müssen durch eine neue Zeile oder einen Doppelpunkt von der vorhergehenden Anweisung getrennt werden. Beispiele für gültige Anweisungen sind:
[$x = 42 $x = $x + 1] | [$x = 42: $x = $x + 1] |
Text
Text, der nicht innerhalb von eckigen Klammern steht, wird direkt in die Ausgabe geschrieben. Versehen Sie eckige Klammer mit einem umgekehrten Schrägstrich als Escape-Zeichen: \[ und \]. Ein umgekehrter Schrägstrich selbst wird folgendermaßen geschrieben \\.
Kommentare
Kommentare in einem Anweisungsblock beginnen immer mit dem Zeichen ' und enden in der nächsten Zeile oder mit einer schließenden eckigen Klammer.
Variablen
Variablen werden durch Zuweisung von Werten zu Variablen erstellt. Zur Deklaration oder Verwendung einer Variablen wird das Zeichen $ verwendet. Die Groß- und Kleinschreibung ist bei Variablen relevant. Es gibt Variablen der folgenden Arten:
•Ganzzahl: Wird auch als Boolescher Wert verwendet, wobei 0 false und alles andere true ist
•String. Siehe auch String-Mechanismen.
•Objekt: Wird von MobileTogether bereitgestellt. Z.B. das Objekt $Options.
Variablentypen werden durch die erste Zuweisung deklariert:
[$x = 0] bedeutet, dass x nun eine Ganzzahl ist.
[$x = "teststring"] bedeutet, dass x nun ein String ist.
Strings
Strings stehen innerhalb von doppelten Anführungszeichen. \n und \t innerhalb von doppelten Anführungszeichen werden als neue Zeile und Tab interpretiert, \" ist ein literales doppeltes Anführungszeichen und \\ ein umgekehrter Schrägstrich. String-Konstanten können auch mehrere Zeilen umfassen. In String-Verkettungen wird das Zeichen & verwendet:
[$BasePath = $outputpath & "/" & $JavaPackageDir]
Objekte
Objekte sind MobileTogether-Strukturen. Objekte haben Eigenschaften, die mit Hilfe des Operators . aufgerufen werden können. Es können in SPL keine neuen Objekte erstellt werden, doch Sie können Objekte Variablen zuweisen. Beispiel:
class [=$class.Name]
In diesem Beispiel wird das Wort class, gefolgt von einem Leerzeichen und dem Wert der Eigenschaft Name des Objekts $class ausgegeben.
Bedingungen
Verwenden Sie IF-Anweisungen mit oder ohne die ELSE-Klausel wie im Folgenden gezeigt. Setzen Sie die Bedingung nicht in runde Klammern.
if condition
statements
else
statements
endif
Beispiel
[if $namespace.ContainsPublicClasses and $namespace.Prefix <> ""]
whatever you want ['inserts whatever you want, in the resulting file]
[endif]
Iteratoren
Verwenden Sie zum Iterieren FOREACH Anweisungen, wie im Folgenden gezeigt:
foreach object in collection
statements
next
Beispiel
[foreach $class in $classes
if not $class.IsInternal
] class [=$class.Name];
[ endif
next]