Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Von Gadgets, Aspects, Brokern und Agents / Aspekte (SwingGadget) / Aspekt: IntegrityValidating
Aspekt: IntegrityValidating
Aspect: IntegrityValidating
Package: de.espirit.firstspirit.ui.gadgets.aspects
Sofern eine Eingabekomponente Werte eines bestimmten Typs speichern und bearbeiten kann (vgl. Aspekt: ValueHolder<T> und Aspekt: Editable), kann es notwendig sein, die Datenintegrität des Persistenztyps zu prüfen. Mithilfe des Aspekts IntegrityValidating kann eine Validierung der Werte beim Speichern erfolgen.
Dieser Aspekt kann der SwingGadget-Implementierung über die Implements-Bedingung und den Aufruf von addAspect(…) im öffentlichen Konstruktor der SwingGadget-Implementierung hinzugefügt werden:
public class mySwingGadget implements IntegrityValidating {
...
public mySwingGadget(final SwingGadgetContext<myGomForm> context) {
super(context);
addAspect(IntegrityValidating.TYPE, this);
}
...
}
Des Weiteren muss die Methode Set<? extends Problem> validateIntegrity() implementiert werden, die prüft, ob die Eingabekomponente einen gültigen Persistenztyp enthält. Welche Art der Validierung ausgeführt wird, entscheidet dabei jede Komponente selbst. So kann beispielsweise eine Datums-Eingabekomponente den enthaltenen Wert parsen, um die Eingabe zu validieren:
@NotNull
public Set<? extends Problem> validateIntegrity() {
if (allowsInput()) {
final String input = _component.getText();
try {
final DateFormat dateFormat = getDateFormat();
dateFormat.parse(input);
} catch (final ParseException e) {
return Collections.singleton(new Problem(){…});
}
}
return Collections.emptySet();
}