ValueVariablen

ValueVariablen – Ersetzen Konstanten?

Kürzlich habe ich ein relativ interessantes Feature entdeckt. Und zwar gibt es die Möglichkeit, Expressions als Variablen zu deklarieren. Dies funktioniert über eine Extension für den ExtensionPoint

org.eclipse.core.variables.valueVariables“

<variable

description=„meine variable“

name=„de.md.myVar“

readOnly=„true“

initialValue=„world“/>

Eine Erweiterung dessen ist der Extension-Point „org.eclipse.core.variables.dynamicVariable“, der eine dynamische Berechnung der deklarierten Variable erlaubt. Hierfür wird ein VariableResolver dekariert, über den ein Wert dynamisch berechnet werden kann.

Zum auslesen der Werte, und zum Ersetzen von Expressions in Stringausdrücken kann folgendes Codefragment genutzt werden:

VariablesPlugin.getDefault().getStringVariableManager();

Der StringVariablesManager bietet u.a folgende Methoden zum Laden von Variablen.

variablesmanager

Über die Getter-Methoden lassen sich die entsprechenden Variablen laden, über die performStringSubstitutionMethoden lassen sich Ausdrücke der Form „${expression}“ in String ausdrücken auswerten.

Für das obige Beispiel also würde folgendes Code-Fragment was ausgeben?

System.out.println(VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(“Hello ${de.my.myVar”});

Genau!

Spinnen wir den Faden mal etwas weiter. Was lässt sich mit einem derartigen Variablenkonstrukt realisieren, bzw. wozu in aller Welt braucht man das?

Ein Szenarion, welches mir hierzu spontan einfällt wäre die Bereitstellung von Presets für Konfigurationen. Hierbei würde für jedes Preset eine Liste an Variablen mit bestimmten Werten gefüllt. Braucht man ein neues Preset, wird einfach ein neues Plugin erstellt, die entsprechenden Werte eingefügt und hierdurch eine einfache Auswahl ermöglicht.

Gefunden in: Source-Code des Riena-Projektes.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s