Die typisierte Konfiguration als Konzept erleichtert dem Entwickler, die anwendungsdefinierten Klassen (z.B. Layout-Komponenten) konfigurierbar zu machen. Eine Konfiguration wird direkt in der Klasse als inneres Interface hinterlegt, welches von ConfigurationItem ableitet und der Java-Beans-Konvention folgt. Jeder Getter in so einem Interface definiert eine Eigenschaft, liefert den konfigurierten Wert als Ergebnis und kann überall in der Klasse aufgerufen werden.
/** The class that need configuration. */
public class Car {
/** The configuration interface that defines the configuration. */
public interface Config extends ConfigurationItem {
int getHorsePower();
String getColor();
}
...
public void decide(...) {
...
// Access to the configuration value.
if (getConfig().getHorsePower() < 100) {...}
...
}
}
Die obige Beispiel-Konfiguration kann dann über folgendes XML-Document konfiguriert werden:
<config
horse-power="120"
color="red"
/>
Das Framework übernimmt die Aufgaben:
*.layout.xml) und Parsen der XML-Datei in eine mit Werten befüllte Konfiguration (anpassbar durch @Binding-Annotations).getHorsePower() und Namen der Eigenschaft horse-power in der XML-Datei (anpassbar durch @Name-Annotation).Entsprechende Setter kann man auch in der Konfiguration aufführen, falls man vorhat die aus der XML-Datei eingelesene Werte zu ändern.
Der Wert einer Eigenschaft kann selbst eine Konfiguration sein - dadurch entsteht ein ganzer Konfigurationsbaum.