Class ObjIdMap<T>

java.lang.Object
de.bsvrz.puk.config.configFile.fileaccess.ObjIdMap<T>

public class ObjIdMap<T> extends Object
Map von Objekt-ID zu Typ T. Diese Map entspricht grob einer LinkedHashMap<Long, T>, unterstützt aber mehrere doppelte Keys. Grund:

jemand fragt beispielsweise mit DataModel.getObjects(long...) folgendes Array ab:

[1,3,1,1,2]

Um für temporäre Operationen eine Map von dieser ID zu z. B. einem Systemobjekt anzulegen, darf die Anfrage nicht in [1,3,2] reduziert werden, weil dann der Anfrager falsche Ergebnisse erhält.

Daher bietet diese map eine Möglichkeit, die ursprüngliche Reihenfolge und evtl. Doppelungen beizubehalten. Die Methode put(long, Object) aktualisiert immer alle Vorkommen einer ID.

  • Constructor Details

    • ObjIdMap

      public ObjIdMap(List<Long> ids)
      Erstellt eine neue ObjIdMap
      Parameters:
      ids - IDs in Originalreihenfolge
    • ObjIdMap

      public ObjIdMap(long[] ids)
      Erstellt eine neue ObjIdMap
      Parameters:
      ids - IDs in Originalreihenfolge
  • Method Details

    • put

      public void put(long id, T value)
      ordnet einer ID ein Objekt vom Typ T zu.
      Parameters:
      id - ID
      value - Wert
    • getIds

      public long[] getIds()
      Gibt die IDs wieder zurück
      Returns:
      IDs
    • values

      public List<T> values()
      Gibt die Werte zurück, die den ursprünglichen IDs zugeordnet wurden. Die Anzahl und Reihenfolge entspricht dem ursprünglichen Array, daher können auch Objekte doppelt zurückgegeben werden.
      Returns:
      Werte