Auswahl der Konfigurationswerte

In-App kann man den Nutzer den Wert einer Eigenschaft aus einer vorgegebener Kollektion auswählen lassen, z.B.

@Options(fun = AllCharsetNames.class)
String getCharsetName();

wo die Klasse AllCharsetNames eine passende Ableitung von  GenericFunction ist, die die Optionen (Auswahlmöglichkeiten) berechnet, die dann dem Nutzer angeboten werden, z.B.

public class AllCharsetNames extends Function0<Collection<String>> {
  @Override
  public Collection<String> apply() {
    return Charset.availableCharsets().keySet();
  }
}

Ob eine oder mehrere Optionen ausgewählt werden können, entscheidet der Rückgabetyp des Getters der Eigenschaft.