Name der Eigenschaft

Der Attribut-Name (Konfigurationsname der Konfigurationseigenschaft) ist direkt an die Get-Methode über @Name(...) annotiert, oder leitet sich aus dem Namen der Get-Methode ab (Standardverhalten). Ohne Namensannotation ist der Konfigurationsname der Name der Getter-Methode ohne das Präfix (get, is, has…) zerlegt in die Namensbestandteile, in Kleinbuchstaben und mit "-" verbunden.

Die Getter-Methode getSomeLongName() definiert die Konfigurationseigenschaft some-long-name, der boolsche Getter isEverythingOk die Eigenschaft everything-ok (die Annotation ist hier redundant). Der annotierte Getter getSomeX() definiert die Konfigurationseigenschaft x, da hier der Konfigurationsname explizit (und abweichend von der Konvention) angegeben ist. Es ist guter Stil, den Konfigurationsnamen wie im Fall everything-ok passend zur Konvention immer zu annotieren.

interface Config extends ConfigurationItem {
   String getSomeLongName();

   String EVERYTHING_OK = "everything-ok";
   @Name(EVERYTHING_OK)
   boolean isEverythingOk();

   String X = "x";
   @Name(X)
   int getSomeX();
}

​Für obiges Konfigurationsinterface, wäre die folgende Konfiguration passend:

<config
   some-long-name="Ein langer Name!"
   everything-ok="true"
   x="42"
/>

Eine konfigurierbare Eigenschaft kann über einen anderen Namen als den vom Getter-Namen abgeleiteten konfiguriert werden. Dazu muss die entsprechende Eigenschaft eine @Name-Annotation bekommen, die den externen Namen dieser Eigenschaft angibt. Zum Beispiel kann

public interface Config extends ConfigurationItem {
  @Name("optionIndex")
  int getOption();
}

über folgendes XML-Dokument konfiguriert werden:

<config
   optionIndex="42"
/>