Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Von Gadgets, Aspects, Brokern und Agents / Aspekte (ValueEngineer) / Aspekt: MatchSupporting
Aspekt: MatchSupporting
Aspect: MatchSupporting
Package: de.espirit.firstspirit.client.access.editor
Die innerhalb eines ValueEngineers enthaltenen Werte können durchsucht werden. Diese Funktionalität wird über den Aspekt MatchSupporting bereitgestellt. Die im ValueEngineer enthaltenen Werte müssen zunächst für eine Suche aufbereitet und indiziert werden. Nur die entsprechenden Methoden des Interfaces MatchSupporting müssen vom Komponentenentwickler implementiert werden, das umliegende FirstSpirit-Framework behandelt automatisch alle weiteren Funktionen, beispielsweise die Indizierung.
Dieser Aspekt kann der ValueEngineer-Implementierung über die Methode <T> T getAspect(@NotNull ValueEngineerAspectType<T> aspect) aus dem Interface ValueEngineer<T> hinzugefügt werden (siehe Das Interface ValueEngineer<T>). Die Methode liefert eine aspektorientierte Instanz des Persistenztyps zurück:
public <T> T getAspect(@NotNull final ValueEngineerAspectType<T> aspect) {
if (aspect == MatchSupporting.TYPE) {
return aspect.cast(this);
}
return null;
}
Außerdem müssen die Methoden String getStringForIndex(@NotNull T value) und List<? extends Match> getMatches(@NotNull Request request, @NotNull T value) implementiert werden. Die erste Methode konvertiert den übergebenen Wert in einen String, damit die Inhalte für die Suche indiziert werden können. Die zweite Methode liefert eine Liste von Treffern, die einem übergebenen Suchmuster entsprechen. Diese Liste wird beispielsweise zur Visualisierung der Suchtreffer an die SwingGadget-Implementierung weitergeleitet.
Beispiel zur Implementierung des SwingGadget-Aspekts Highlightable siehe Aspekt Highlightable - Treffermarkierung für die Suche und zur Implementierung des ValueEngineer-Aspekts MatchSupporting siehe ValueEngineer - Werte eines SwingGadgets behandeln.