11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

80 KAPITEL 5: IMPLEMENTIERUNGAbbildung A.16 zeigt Klassendiagramme für die anderen Klassen aus dem Package quest.odl.evaluation.model.query.factory.5.2.2 Query-Klassen<strong>ODL</strong>-Query-SubsystemDie Klassen im Package quest.odl.evaluation.model.query bilden die Schnittstelle zwischendem <strong>ODL</strong>-Auswertungssystem <strong>und</strong> dem <strong>ODL</strong>-Query-Subsystem. Eine schematische Darstellungdieser Beziehung ist auf der Abbildung 5.16 gegeben (Rechtecke mit Auslassungspunkten anstattder Namen sind eingefügt um zu zeigen, dass nicht alle Systemkomponenten aufgeführt werden).<strong>ODL</strong> ConstraintEvaluation System<strong>ODL</strong> User QuerySubsystemMetaTypesQuery valueQueryManagerExecutequeryQueryClasses(=Query Policies)Query valueUseUseContextQuantifierQueryDialogsQueryInput Panels………………………………Abbildung 5.16: Schnittstelle zwischen dem <strong>ODL</strong>-Auswertungssystem <strong>und</strong> dem <strong>ODL</strong>-Query-SubsystemDie Klasse QueryManager bildet den Übergangspunkt zwischen dem <strong>ODL</strong>-Auswertungssystem<strong>und</strong> dem <strong>ODL</strong>-Query-Subsystem. Das heißt insbesondere, dass <strong>ODL</strong>-Auswertungsklassen keineanderen Klassen aus dem Query-Subsystem außer dem QueryManager benutzen. Diese modulareAufteilung ermöglicht es, beliebige Änderungen am Query-Subsystem vorzunehmen – bis hin zurkompletten Ersetzung durch ein anderes Query-Subsystem – ohne das <strong>ODL</strong>-Auswertungssystem modifizierenzu müssen. Die einzige Bedingung dabei ist, dass das Interface der QueryManager-Klassenicht verändert wird.Der QueryManager ist eine Singleton-Klasse, die das Strategie-Entwurfsmuster implementiert:für jeden <strong>ODL</strong>-Datentyp stellt sie eine query-Methode zur Verfügung, welche die erforderlicheBenutzereingabe von einer dem <strong>ODL</strong>-Datentyp entsprechenden Query-Klasse ausführen lässt. DieTabelle 5.13 führt für jeden <strong>ODL</strong>-Datentyp die entsprechende query-Methode der QueryManager-Klasse<strong>und</strong> den Namen des Interfaces, das von Query-Klassen implementiert werden muss, dieBenutzereingaben für diesen Datentyp realisieren (diese Klassen dienen als Strategie-Komponentenfür den QueryManager <strong>und</strong> werden von seinen query-Methoden genutzt). Die Parameterlisten derquery-Methoden wurden aufgr<strong>und</strong> ihrer Länge <strong>und</strong> Ähnlichkeit weggelassen.Bei der Initialisierung wird der QueryManager mit Query-Klassen als Strategie-Objekten konfiguriert,indem die configure-Methode mit den zu benutzenden Query-Klassen als Parametern aufgerufenwird. In der aktuellen <strong>ODL</strong>-Version findet dieser Aufruf im statischen Initialisierungsblock derKlasse quest.odl.editor.gui.EditorDialog statt:QueryManager.instance().configure(new DefaultBoolQuery(),

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!