Variant-Names eines Topic-Names ermitteln

Sollte es einmal nötig sein alle Variant-Names eines Topic-Names zu ermitteln, kann das mit Hilfe der Funktion getVariants geschehen. Der Rückgabewert dieser Funktion ist eine Menge der Variant-Names des entsprechenden Topic-Names. Er ist immer eine Menge, auch leere Menge, und nimmt niemals null an. Folgendes Beispiel zeigt das Vorgehen.

// Varianten von tn1 ermitteln
HashSet variants = tn1.getVariants();

// Iterator holen
Iterator variantsIt = variants.iterator();

// über die Variant-Names iterieren
while (variantsIt.hasNext()) {
  // aktuelle Variant holen
  Variant currentVariant = (Variant) variantsIt.next();
}

Zunächst werden die Menge der Variant-Names des Topic-Names zwischengespeichert und im Anschluss der Iterator ermitteln. Innerhalb der While-Anweisung wird dann der aktuelle Variant-Name in der Variabel currentVariant zwischengespeichert.

Bereits in den vorherigen Abschnitten wurde bereits erläutert, dass der Variant-Name entweder einen Wert, eine Ressource oder keines von beiden zugeordnet hat. Das nächste Beispiel gibt nun abhängig von der Zuordnung, entweder den Wert und die URL der Ressource aus. Dazu setzen wir innerhalb der o.g. While-Anweisung an und verwenden die Variabel currentVariant.

// Abfrage ob Variant-Name-Value gesetzt
if (currentVariant.getValue() != null) {
  // Ausgabe des Wertes
  System.out.println("Variant-Name-Value: " + currentVariant.getValue());
} else if (currentVariant.getResource() != null) {
  // Locator zwischenspeichern
  Locator variantLocator = currentVariant.getResource();

  // Referenz des Locators ermitteln
  String locatorReference = variantLocator.getReference();

  // Ausgabe der Referenz
  System.out.println("Variant-Ressource: " + locatorReference);
} else {
  // Ausgabe Fehlermeldung
  System.err.println("Weder Wert noch Ressource zugewiesen.");
}

Zunächst wird versucht den Wert des Variant-Names zu ermitteln. Ist ein Wert vorhanden wird dieser ausgegeben, ansonsten wird versucht die Ressource zu ermitteln. Besitzt der Variant-Name eine Ressource wird deren Referenz ermittelt und ausgegeben. Sollte weder Wert noch Ressource vorhanden sein, wird eine Fehlermeldung ausgegeben.

Der nächste Abschnitt beschreibt das Löschen eines Variant-Names.

Leave a Reply