Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / GOM - FirstSpirit GUI Object Model / Typisierung und Mapping / Mengenwertige Verwendung (Elementlisten)

Mengenwertige Verwendung (Elementlisten)

Bei mengenwertiger Verwendung muss die beinhaltende GUIList-Implementierung ein entsprechendes Mapping bereitstellen.

Beispiel (schematisch): Realisierung einer einfachen Liste von sprachabhängigen Informationsobjekten. Die Implementierung definiert lediglich ein Tag als zulässiges Element. Für eine Erweiterung bzgl. der zu speichernden Informationsobjekte muss eine abgeleitete Klasse lediglich die Methode getGuiElementMappings() überschreiben.

Die Methode get() wird nicht annotiert. Die Annotation für die Liste erfolgt bei der get-Methode der Listenklasse und die Annotation der Listenelemente erfolgt als Annotation der jeweilig zugewiesenen Klasse auf Typebene.

Listing: GOM Mengenwertige Verwendung (Elementlisten)

public class GomSearchFields extends AbstractGomList<GomSearchField> {

private static final String TAG = "SEARCH_FIELDS";
private static final String ENTRY_TAG = GomSearchField.TAG;

public GomSearchFields() {
}

public GomSearchFields(final List<Pair<String, Integer>> fields) {
for (final Pair<String, Integer> field : fields) {
add(new GomSearchField(field.getKey(), field.getValue()));
}
}

@Override
protected String getDefaultTag() {
return TAG;
}

@Override
public Map<String, Class<? extends GomElement>> getGomElementMappings() {
final Map<String, Class<? extends GomElement>> mappings =
super.getGomElementMappings();
mappings.put(ENTRY_TAG, GomSearchField.class);
return mappings;
}

public Map<String, Integer> getValues() {
final Map<String, Integer> result = new HashMap<String, Integer>();
for (final GomSearchField param : this) {
result.put(param.getName(), param.getId());
}
return result;
}

}

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz