Löschen eines Topics

Zum Löschen eines Topics stellt eine Topic-Instanz innerhalb der Topic-Map die Funktion remove zur Verfügung. Wie bereits in der vorherigen Kapiteln dargestellt wurde, werden mit Topics viele Eigenschaften und Ausprägungen von Topic-Map-Elementen näher beschrieben. Topics kommen zum Beispiel als Scopes oder Types zum Einsatz. Dementsprechend ist das Entfernen eines Topics nicht einfach. Aus könnte bei unachtsamen Löschen zu unangenehmen Effekten führen. Im Sinne der Wissensmodellierung könnten Aussagen ihre Genauigkeit verlieren, wenn plötzlich Types oder Scopes wegfallen.

Aus diesem Grund muss eine Fehlerbehandlung durchgeführt werden. Wenn das Topic noch in Verwendung ist, wird eine TopicInUseException ausgelöst. Dadurch ist das Topic zwar nicht entfernt, aber man kann versuchen nach und nach die Abhängigkeiten aufzulösen. Das folgende Beispiel zeigt das Entfernen und die notwendige Fehlerbehandlung:

// Versuch Topic zu löschen
try {
  t1.remove();
}
// Fehlerbehandlung bei benutzten Topics
catch (TopicInUseException e) {
  // Ausgabe bei Fehlschlag
  System.err.println("Topic wird benutzt");
}

Zunächst wird dabei im try-Teil versucht das Topic zu entfernen, sollte das fehlschlagen fängt der catch-Teil den auftretenden Fehler ab.

In den Beispielen waren bisher die Topics immer vorgegeben. Im folgenden Abschnitt wird gezeigt, wie alle Topics einer Topic-Map-Instanz ermittelt werden können.

Leave a Reply