Variablen stellen einen Weg dar, der Anwendung auf ausbaubare Weise Informationen zur Verfügung zu stellen, welche vom Benutzer geliefert werden. Einige Anwendungen machen davon extensiven Gebrauch, während andere dies kaum nutzen.
Eine grundlegende Verwendung von Variablen besteht jedoch in ihrer Interpretation beim Laden der Einstellungen. Einzelne Einstellungen können in ihren Werten solche Variablen enthalten um z.B. den gleichen Einstellungswert für mehrere verschiedene Benutzer zu verwenden, dabei jedoch trotzdem jedem individuellen Benutzer seinen einzigartigen Wert zu garantieren.
Um grösstmögliche Flexibilität in verschiedenen Szenarien zu gewährleisten, können
diese Variablen selbst als eine Einstellung spezifiziert werden. Die Einstellung
variables spezifiziert den Pfad zu einer Datei mit Variablendefinitionen.
Diese Definitionen können enweder im standard Java properties Format vorliegen, wobei
der property Schlüssel als Variablenname verwendet wird und der Wert als Variableninhalt.
Eine andere Möglichkeit besteht in einer XML Datei, welche dem XML Schema
ReplacementMapperConfig.xsd
genügt; dies erlaubt viel weiter
gehende Möglichkeiten, die Variablen mittels mehrerer Dateien zu strukturieren.
Variablen erlauben es, die Definition eines oft verwendeten Werts an einer einzigen
Stelle zu halten, während dieser Wert jedoch an vielen verschiedenen Stellen zum
Einsatz kommt. So legt z.B. die vom System zur Verfügung gestellte Variable
app.name den Speicherort verschiedener Einstellungsdateien
fest, worin unterschiedliche anwendungsspezifische Einstellungen gespeichert werden:
z.B. die Einstellung dialog-properties mit ihrem Vorgabewert von
${settings.dir}/${app.name}Dialog.properties
wird für die
Anwendung MyApp die Datei ..../MyAppDialog.properties
verwenden.
Generell ist es dem Inhalt von Variablen erlaubt, seinerseits auf andere Variablen zu verweisen, was einen flexiblen Weg eröffnet, viele Dinge in Vorlagen abzulegen. Es ist dabei jedoch nicht unterstützt, Abhängigkeitsketten zu erstellen, welche Zyklen bilden. Der folgende Satz von Variablen ist gültig:
template = eine Variable '${var-1}' mit dem Wert '${var-2}' var-1 = foo var-2 = bar
var-1 = "Beispiel ${template}"
Standardmässig werden Bereiche in Variableninhalten ersetzt, welche mit „ ${ “ beginnen und mit „ } “ enden. Solche Bereiche werden ersetzt mit dem Inhalt einer Variable mit dem Namen, welcher dem Bereich zwischen diesen Start/End-Markierungen entspricht, wie oben illustriert. Manchmal ist es bei der Kombination verschiedener Sätze von Variablen für unterschiedliche Zwecke jedoch erwünscht, die Expansion des einen Satzes erst einem späteren Prozess mit anderen Rahmenbedingungen zu überlassen. Für diesen Zweck ist es auch möglich, die Start/End-Markierungen einer Variablenreferenz im Inhalt neu zu definieren. Dies unterstützt allerdings nur die XML Form der Variablendefinition, das XML Schema definiert dies.