Syntaxe SPL
Un modèle SPL est construit dans le langage de programmation du code de programme que vous souhaitez générer. Le modèle contient des fragments d'instructions SPL pour intégrer des données MobileTogether dans le code de programme généré. Les instructions SPL sont contenues entre des crochets. Voici par exemple, un modèle pour générer un fichier XML (écrit en XML), avec les instructions SPL marquées en jaune.
<?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>
Déclarations multiples
Des déclarations multiples peuvent être contenues dans une paire de crochets. Des déclarations supplémentaires doivent être séparées de la déclaration précédente par une nouvelle ligne ou un double-point. Des exemples valides sont :
[$x = 42 $x = $x + 1] | [$x = 42: $x = $x + 1] |
Texte
Tout texte ne se trouvant pas dans des crochets est écrit directement dans la sortie. Pour générer des crochets, il faut les échapper avec une barre oblique renversée : \[ and \]. Pour générer une barre oblique renversée, utiliser \\.
Commentaires
Les commentaires se trouvant dans un bloc d'instructions commencent toujours avec un caractère ' , et sont terminés dans la ligne suivante ou avec un crochet fermant.
Variables
Les variables sont créées en leur attribuant des valeurs. Le caractère $ est utilisé pour faire une déclaration ou utiliser une variable. Les noms des variables sont sensibles à la casse. Les variables peuvent être de type suivant :
•Entier : Aussi utilisé en tant que booléenne, où 0 est false et tout le reste est true
•Chaîne: voir aussi Mécanismes de chaîne.
•Objet : fourni par MobileTogether. Par exemple, l'objet $Options.
Les types de variables sont déclarés par la première attribution :
[$x = 0] signifie que x est maintenant un entier.
[$x = "teststring"] signifie que x est maintenant une chaîne.
Chaînes
Les chaînes sont contenues dans des guillemets. \n et \t dans des guillemets sont interprétés en tant que newline et tab, \" est un guillemet littéral, et \\ est une barre oblique renversée. Les constantes de string peuvent aussi s’étendre sur plusieurs lignes. La concaténation de chaîne utilise le caractère & :
[$BasePath = $outputpath & "/" & $JavaPackageDir]
Objets
Les objets sont des structures MobileTogether. Les objets possèdent des propriétés qui peuvent être accédées en utilisant l'opérateur .. Il n'est pas possible de créer de nouveaux objets dans SPL, mais il est possible d'attribuer des objets à des variables. Par exemple :
class [=$class.Name]
Cet exemple sort le mot class, suivi d'un espace et de la valeur de la propriété Name de l'objet $class.
Conditions
Utiliser les instructions IF, avec ou sans la clause ELSE, comme suit. Ne pas utiliser de parenthèses autour de la condition.
if condition
instructions
else
statements
endif
Exemple
[if $namespace.ContainsPublicClasses and $namespace.Prefix <> ""]
whatever you want ['inserts whatever you want, in the resulting file]
[endif]
Itérateurs
Utiliser des instructions FOREACH pour itérer, comme suit :
foreach object in collection
instructions
next
Exemple
[foreach $class in $classes
if not $class.IsInternal
] class [=$class.Name];
[ endif
next]