Association-Role-Types

Außer beim Erstellen können die den Association-Role-Type einer Association-Role auch nachträglich verändern. Dazu stellt das Association-Role-Interface der TMAPI die Funktion setType bereit. Wie bereits aus vorherigen Beispielen mit Types bekannt, wird nur ein Argument übergeben. Dieses bestimmt den Association-Type. Das folgende Beispiel setzt nachträglich den Association-Role-Type der Association-Role assRole1 aus dem o.g. Beispiel.

// Topic für Association-Role-Type
Topic county = tm.createTopic();  

// Setzen der Association-Role
assRole1.setType(county);

Im Beispiel wird zunächst ein neues Topic für den Association-Type erstellt und im Anschluss mit der Funktion setType zugewiesen. Sollte die Association-Role zuvor einen Type gehabt haben, wurde er mit dem Funktionsaufruf überschrieben. Jede Association-Role hat nur genau einen Association-Role-Type.

Mit Hilfe der Funktion getType können Sie sich den Association-Role-Type auch wieder zurückgeben lassen. Der Rückgabewert ist entweder ein Topic oder null. Folgendes Beispiel zeigt diese Vorgehensweise.

// Zwischenspeicher für Association-Role-Type
Topic oldAssoRoleType = null;

// Type ermitteln
oldAssoRoleType = assRole1.getType();

// Überprüfung ob Type gesetzt
if (oldAssoRoleType != null) {
  // Type gesetzt
  System.out.println("Association-Role-Type gesetzt.");
} else {
  // Type nicht gesetzt
  System.err.println("Role-Type nicht gesetzt.");
}

Die If-Abfrage kontrolliert hierbei, ob die Association-Role einen Type hat. Ist das der Fall, wird eine entsprechende Meldung ausgegeben. Ist kein Type gesetzte wird eine andere Meldung ausgegeben.

Um einen Association-Role-Type zu löschen, können Sie der Funktion setType den Wert null übergeben. Dadurch wird der vorhandene Association-Role-Type entfernt. Das Beispiel illustriert dieses Vorgehen.

// Association-Role-Type entfernen
assRole1.setType(null);

Nachdem nun ausgiebig die Association-Role-Types besprochen wurden, widmet sich der nächste Abschnitt den Association-Role-Playern.

Leave a Reply