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"
/>